如何解决ld:未知选项:--sysroot = / Users / myname / Library / Android / ndk / android-ndk-r20b / toolchains / llvm / prebuilt / darwin-x86_64 / sysroot
我正在macOS上尝试使用纯 cmake 命令而不是gradle外部本机构建脚本来构建Android本机源代码。以下是我用来编译Android C / C ++代码的命令:
➜ /Users/myname/Library/Android/sdk/cmake/3.6.4111459/bin/cmake \
-DCMAKE_LINKER=/Users/myname/Library/Android/ndk/android-ndk-r20b/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android-ld \
-DCMAKE_TOOLCHAIN_FILE=/Users/myname/Library/Android/ndk/android-ndk-r20b/build/cmake/android.toolchain.cmake \
-DANDROID_STL=c++_static \
-DANDROID_TOOLCHAIN=clang \
-DANDROID_ABI=arm64-v8a \
-DANDROID_NDK=/Users/myname/Library/Android/ndk/android-ndk-r20b \
-DANDROID_PLATFORM=android-23 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_MAKE_PROGRAM=/Users/myname/Library/Android/sdk/cmake/3.6.4111459/bin/ninja \
-G"Android Gradle - Ninja" \
..
通过运行以上命令,我总是遇到以下错误:
Run Build Command:"/Users/myname/Library/Android/sdk/cmake/3.6.4111459/bin/ninja" "cmTC_2af97" [1/2] Building C object CMakeFiles/cmTC_2af97.dir/testCCompiler.c.o [2/2] Linking C executable cmTC_2af97 ld: unknown option: --sysroot=/Users/myname/Library/Android/ndk/android-ndk-r20b/toolchains/llvm/prebuilt/darwin-x86_64/sysroot clang: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed. CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:3 (project)
搜索后,似乎来自macOS的ld
链接器将覆盖我的NDK的ld
链接器。我尝试通过指定以下cmake选项来通过cmake-use-a-custom-linker中所说的CMake参数传递NDK链接器ld
:
-DCMAKE_LINKER=/Users/myname/Library/Android/ndk/android-ndk-r20b/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android-ld
但仍然遇到相同的错误ld: unknown option: --sysroot xxx
。
有人对如何解决此错误有任何想法吗?感谢您的帮助。
此处有类似的问题:https://superuser.com/questions/1446914/ndk-r20-embedded-toolchain-fails-on-macos,但尚未得到答案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。