Встроенный набор инструментов NDK r20 не работает на MacOS

Встроенный набор инструментов NDK r20 не работает на MacOS

Я пытаюсь построитьlibzmqдля Android с использованием CMake и набора инструментов, встроенного в NDK.

Моя система — MacOS 10.14.3.

Я только что скачал последнюю версию NDK [r20], но проблема уже была в r19c.

Процесс CMake завершается ошибкой при попытке скомпилировать «простую тестовую программу» и выдает сообщение:

ld: unknown option: --sysroot=/Users/me/android-ndk-r20/platforms/android-28/arch-arm

Я попытался скомпилировать другую библиотеку (пользовательскую), чтобы подтвердить, что проблема в цепочке инструментов, и получил ту же ошибку.

В --helpвыводе компилятора (из встроенного набора инструментов) я обнаружил следующее:

-isysroot <dir>         Set the system root directory (usually /)

Может ли быть проблема с цепочкой инструментов NDK для MacOS, которая передает --sysrootпараметр вместо -isysrootодного?
Есть ли обходной путь? (Вроде чего-то, что нужно добавить в файл цепочки инструментов CMake, может быть?)

Вот мой файл набора инструментов CMake:

set(CMAKE_SYSTEM_NAME Android)
set(CMAKE_SYSTEM_VERSION 28) # API level
set(CMAKE_ANDROID_ARCH_ABI armeabi-v7a)
set(CMAKE_ANDROID_ARM_MODE ON)
set(CMAKE_ANDROID_NDK /Users/me/android-ndk-r20)
set(CMAKE_ANDROID_STL_TYPE c++_static)

А пока я запущу это через образ Ubuntu Docker и посмотрю, что из этого получится.

решение1

Я столкнулся с точно такой же проблемой на OSX и в итоге вернулся к версии NDK 18b, и она подошла мне.

Та же проблема на NDK Rev 19c. Я думаю, что проблема с NDK на r19c и r20

решение2

Необходимо указать цепочку инструментов:

-DCMAKE_TOOLCHAIN_FILE=${HOME}/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake

Плагин Android Gradle вызывает CMake с этим аргументом, что не приводит к ошибке. См.Страница NDK CMake

Связанный контент