MacOS 上的 Android ndk 缺少黄金链接器

问题描述 投票:0回答:1

我已经从 android 网站下载了 mac 版的 gold 链接器,但我发现它缺少 gold 链接器。我怎样才能得到它?

如果我使用 CMake for Android 编译我的 SDL 项目,clang 将给出此错误:

C/C++: Debug enabled
C/C++: Building for Android
C/C++: : && /Users/<me>/Library/Android/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi19 --sysroot=/Users/<me>/Library/Android/sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/darwin-x86_64/sysroot -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security   -flto=thin -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--fatal-warnings -Wl,--gc-sections -Wl,--no-undefined -Qunused-arguments -Wl,--gc-sections    -fuse-ld=gold CMakeFiles/boo.dir/main.cpp.o -o boo  libfoo.a  -latomic -lm && :
C/C++: clang++: error: invalid linker name in argument '-fuse-ld=gold'
C/C++: clang++: error: invalid linker name in argument '-fuse-ld=gold'
C/C++: ninja: build stopped: subcommand failed.
C/C++: CMake Warning:
C/C++:   Manually-specified variables were not used by the project:
C/C++:     ANDROID_APP_PLATFORM
C/C++:     ANDROID_LD

有什么方法可以阻止 gradle 使用 gold linker 吗?

android linker android-ndk sdl-2 gold-linker
1个回答
0
投票

您正在使用 NDK r25。 Gold 和 BFD 都在 r23 中被删除了(它们是 binutils 的一部分)。 r22r21 宣布即将删除。

https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#Linkers是“我使用什么工具?”博士。

从构建中删除这些标志以修复构建失败。

© www.soinside.com 2019 - 2024. All rights reserved.