![MacOS에서 NDK r20 임베디드 툴체인이 실패함](https://rvso.com/image/1711446/MacOS%EC%97%90%EC%84%9C%20NDK%20r20%20%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C%20%ED%88%B4%EC%B2%B4%EC%9D%B8%EC%9D%B4%20%EC%8B%A4%ED%8C%A8%ED%95%A8.png)
구축하려고 하는데libzmqCMake와 NDK에 내장된 툴체인을 사용하는 Android용.
내 시스템은 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 /)
--sysroot
매개변수 대신 매개변수를 전달하는 MacOS용 NDK 도구 체인에 문제가 있을 수 있나요 -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)
그동안 우분투 도커 이미지를 통해 이를 실행하고 어떻게 진행되는지 살펴보겠습니다.
답변1
나는 OSX에서 이와 똑같은 문제에 부딪혔고 결국 NDK 18b 개정판으로 되돌아가서 내 요구에 맞게 작동했습니다.
NDK Rev 19c에서도 동일한 문제가 발생합니다. r19c 및 r20의 NDK에 문제가 있는 것 같습니다.
답변2
도구 체인을 지정해야 합니다.
-DCMAKE_TOOLCHAIN_FILE=${HOME}/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake
Android Gradle 플러그인은 이 인수를 사용하여 CMake를 호출하므로 오류가 발생하지 않습니다. 보다NDK의 CMake 페이지