NDK r20 組み込みツールチェーンが MacOS で失敗する

NDK r20 組み込みツールチェーンが MacOS で失敗する

私は構築しようとしている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 /)

--sysrootMacOS の 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 ページ

関連情報