La cadena de herramientas integrada NDK r20 falla en MacOS

La cadena de herramientas integrada NDK r20 falla en MacOS

estoy tratando de construirlibzmqpara Android usando CMake y la cadena de herramientas integrada en el NDK.

Mi sistema es MacOS 10.14.3

Recién descargué el último NDK [r20] pero el problema ya estaba aquí con r19c.

El proceso CMake falla cuando intenta compilar un "programa de prueba simple" y dice:

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

Intenté compilar otra biblioteca (personalizada) para confirmar que se trata de un problema con la cadena de herramientas y obtuve el mismo error.

En la --helpsalida del compilador (de la cadena de herramientas integrada), encontré esto:

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

¿Podría haber algún problema con la cadena de herramientas NDK para MacOS que pasa el --sysrootparámetro en lugar de -isysrootese?
¿Existe alguna solución? (¿Quizás le gustaría agregar algo al archivo de la cadena de herramientas de CMake?)

Aquí está mi archivo de cadena de herramientas 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)

Mientras tanto, ejecutaré esto en una imagen de la ventana acoplable de Ubuntu y veré cómo funciona.

Respuesta1

Me encontré exactamente con el mismo problema en OSX y terminé volviendo a la revisión NDK 18b y funcionó para mis necesidades.

El mismo problema en el NDK Rev 19c. Creo que hay un problema con el NDK en r19c y r20.

Respuesta2

Es necesario especificar la cadena de herramientas:

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

El complemento Gradle de Android invoca CMake con este argumento, lo que no genera ningún error. VerPágina CMake de NDK

información relacionada