我正在尝试按照 Getting started 构建 Google 的 ligjingle步骤,我已到达“建筑”部分。
当我发出任一问题时
ninja -C out/Debug
或
ninja -C out/Release
我收到以下错误: I posted the output in pastebin too, if you prefer
ninja -C out/Debug
ninja: Entering directory `out/Debug'
[3/2606] LINK genmacro
FAILED: cc -Wl,-z,now -Wl,-z,relro -Wl,--fatal-warnings -pthread -Wl,-z,noexecstack -fPIC -B/home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin -Wl,--disable-new-dtags -m64 -Wl,--icf=none -fuse-ld=gold -Wl,--gdb-index -o genmacro -Wl,--start-group obj/third_party/yasm/source/patched-yasm/tools/genmacro/genmacro.genmacro.o -Wl,--end-group
/home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold: -plugin: unknown option
/home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold: use the --help option for usage information
collect2: error: ld returned 1 exit status
[3/2606] CC obj/net/third_party/nss/ssl/libssl.sslauth.o
ninja: build stopped: subcommand failed.
我试过了
ld.gold --help | grep "plugin"
得到:
--plugin PLUGIN Load a plugin library
--plugin-opt OPTION Pass an option to the plugin
所以我想我收到的错误是因为代码中的某个地方, ld.gold 是用 -plugin xxx
调用的。而不是--plugin xxx
我一直在和grep -Hr
“玩”以及“插件”的不同组合来尝试查找问题,但到目前为止我还没有发现任何东西。我想它隐藏在 Makefile 中的某个地方。
最佳答案
问题不在于 -plugin
选项应该是 --plugin
。 ld.gold
如果接受其中任何一个选项,则接受这两个选项。
但它只接受其中任何一个如果构建binutils
已经
配置为--enable-plugins
。 Documentation .
当您运行ld.gold --help | grep "plugin"
时输出显示--plugin
是
一个公认的选择。
因此问题似乎是这样的:-
/home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold
尚未配置 --enable-plugins
当您运行ld.gold --help | grep "plugin"
时您正在执行第一个 ld.gold
可以在您的 PATH
上找到。大概是/usr/bin/ld.gold
从你的发行版。你
可以通过运行找到:
which ld.gold
无论如何,不是
/home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin/ld.gold
这是一个ld.gold
已配置为 --enable-plugins
如果您cd
进入/home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils/Linux_x64/Release/bin/
并运行:
./ld.gold -plugin
您将得到:
./ld.gold: -plugin: unknown option
要解决该问题,理想的解决方案是重建 /home/nschoe/workspace/webrtc/jingle/trunk/third_party/binutils
根据that Documentation
如果无法重建这些第三方binutils
从源头那么它会
如果你只是复制系统 ld.gold
可能会起作用由 which
检测到超过其中的一个
第三方binutils
,或删除/重命名第三方并将其替换为符号链接(symbolic link)
到系统一。这些黑客攻击中的任何一个都有可能发生
会给你带来一些不明显的损坏。
关于linker - 黄金链接器 ld.gold -plugin : unknown option,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23754665/