![La cadena de herramientas integrada NDK r20 falla en MacOS](https://rvso.com/image/1711446/La%20cadena%20de%20herramientas%20integrada%20NDK%20r20%20falla%20en%20MacOS.png)
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 --help
salida 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 --sysroot
parámetro en lugar de -isysroot
ese?
¿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