2016-12-27 14 views
1

В настоящее время я тестирую поддержку CMake Visual Studio 2017 RC для проектов Android NDK C++ в Windows и столкнулся с проблемой ,«Компилятор C [...] не может скомпилировать простую тестовую программу« с использованием CMake и Android NDK

Когда я пытаюсь генерировать кэш CMake с:

<cmake.exe> -G "Visual Studio 15 2017" -DCMAKE_INSTALL_PREFIX:PATH=<install_path> -DCMAKE_TOOLCHAIN_FILE="<androidNDK_path>\build\cmake\android.toolchain.cmake" -DANDROID_TOOLCHAIN=gcc -DANDROID_ABI="armeabi-v7a with NEON" --DCMAKE_BUILD_TYPE="Debug" <source> 

Я получаю следующее сообщение об ошибке (То же самое происходит и с лязгом, если я не заставляю ССАГПЗ):

The C compiler "<androidNDK_path>/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc.exe" is not able to compile a simple test program. 

До этого Я получаю предупреждения о том, что идентификация компиляторов C и CXX неизвестна, но я не уверен, что это актуально.

я получаю больше ошибок для временного проекта теста, но они, кажется, не дают много информации, как

C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(57,5): 
error MSB4018: The "VCMessage" task failed unexpectedly. 

и

C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(57,5): 
error MSB4018: System.FormatException: Index (zero based) must be greater 
than or equal to zero and less than the size of the argument list. 

Как я могу устранить это?

ответ

2

Для всех, кто находит это сообщение и имеет ту же проблему: проблема, похоже, является генератором Visual Studio. Также кажется, что для инструментальных средств Android требуется аргумент с указанием пути к «make». Поэтому для решения обоих я установил MSYS (http://www.mingw.org/wiki/MSYS) и сменил команду CMake на:

<cmake.exe> -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=<install_path> -DCMAKE_TOOLCHAIN_FILE="<androidNDK_path>\build\cmake\android.toolchain.cmake" -DCMAKE_MAKE_PROGRAM="<MinGW_path>\msys\1.0\bin\make.exe" -DANDROID_TOOLCHAIN=gcc -DANDROID_ABI="armeabi-v7a with NEON" --DCMAKE_BUILD_TYPE="Debug" <source>