我正在尝试按照Getting started步骤构建Google的ligjingle,我已经到达了“Building”部分。
当我发出
时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的某个地方。
答案 0 :(得分:9)
问题不在于-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
根据{{3}}
如果您无法从源代码重建这些第三方binutils
,那么它将会
如果您只是将ld.gold
检测到的系统which
复制到该系统中,可能会有效
第三方binutils
,或删除/重命名第三方,并用符号链接替换它
系统之一。这些黑客都有机会
会导致你一些不明显的破损。