1

我记得当 Gold 链接器被引入 NDK 时,有一个关于如何切换到它的说明。但现在我在文档中的任何地方都找不到该信息。Application.mk那么,为了使用gold链接器,我应该放什么?

我试过这个标志: APP_LDFLAGS += -fuse-ld=gold --threads

它抛出这个错误:

arm-linux-androideabi-g++:错误:无法识别的命令行选项--threads'

所以我怀疑这不是gold我要联系的。

4

1 回答 1

2

黄金链接器是 ARM(和 x86)的默认值。从修订版 8c 发行说明

为 Windows 工具链添加了黄金链接器 ld.gold。Gold 链接器也是所有主机上 ARM 和 X86 的默认链接器。您可以通过将 LOCAL_LDFLAGS += -fuse-ld=bfd 添加到 Android.mk 或将 -fuse-ld=bfd 传递给执行链接的 g++/clang++ 命令行来覆盖它以使用 ld.bfd 链接器。

看起来您的错误消息来自 C++ 编译器,而不是链接器。如果链接器是通过编译器调用的,那么您可以尝试使用-Wl,--threads. 否则,也许您还--threads指定了其他地方。

于 2015-06-03T14:33:04.547 回答