& quot; Компилятор C […] не может скомпилировать простую тестовую программу & quot; используя CMake и Android NDK

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

Когда я пытаюсь сгенерировать кеш 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>

Я получаю следующую ошибку (то же самое происходит с Clang, если я не форсирую gcc):

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 требуется аргумент с путем «сделать». Поэтому для решения обоих я установил 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>
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]