6

開始手順に従って Google の ligjingle を構築しようとしていますが、「構築」セクションに到達しました。

どちらかを発行すると

ninja -C out/Debug

また

ninja -C out/Release

次のエラーが表示 されます。必要に応じて、出力をペーストビンにも投稿しました

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 のどこかに隠されていると思います。

4

1 に答える 1

10

問題は、-pluginオプションが であることではありません--pluginld.gold いずれかのオプションを受け入れる場合は、両方のオプションを受け入れます。

ただし、のビルドが で構成されている場合は、いずれかのみを受け入れます。ドキュメンテーションbinutils--enable-plugins

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 に従って再構築することです

これらのサードパーティをソースから再構築できない場合は、によって検出されたシステムをサードパーティのものにbinutilsコピーするか、サードパーティのものを削除/名前変更して、システムのものへのシンボリックリンクに置き換えるだけでおそらく機能します。これらのハックのいずれかによって、あいまいな破損が発生する可能性があります。ld.goldwhichbinutils

于 2014-05-20T14:21:56.660 に答える