![NDK r20 組み込みツールチェーンが MacOS で失敗する](https://rvso.com/image/1711446/NDK%20r20%20%E7%B5%84%E3%81%BF%E8%BE%BC%E3%81%BF%E3%83%84%E3%83%BC%E3%83%AB%E3%83%81%E3%82%A7%E3%83%BC%E3%83%B3%E3%81%8C%20MacOS%20%E3%81%A7%E5%A4%B1%E6%95%97%E3%81%99%E3%82%8B.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 ツールチェーンで、1 つのパラメータではなく パラメータが渡されるという問題が発生している可能性がありますか-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でも同じ問題が発生します。r19cとr20のNDKに問題があると思います。
答え2
ツールチェーンを指定する必要があります:
-DCMAKE_TOOLCHAIN_FILE=${HOME}/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake
Android Gradleプラグインはこの引数でCMakeを呼び出しますが、エラーは発生しません。NDK の CMake ページ