web-dev-qa-db-ja.com

collect2:致命的エラー:終了した「ld」コンパイルが見つかりません

CおよびC++プログラムを実行しようとすると、

collect2: fatal error: cannot find 'ld' compilation terminated.

GCCとG ++の最新バージョンをすでにインストールしています。

1
gaurav soni

私の場合、これを回避策で解決しました:

クロスコンパイラbin dirで、コンパイラを指すシンボリックリンクを作成しました

ld (ld -> powerpc-fsl-linux-ld). 

次に、メイクファイルまたはビルドスクリプトで、toolchainフォルダーをPATH変数に追加しました

export PATH=$PATH:"toolchain-dir-absolute-path"

動いた!

2
JaimePereira

AFL を使用してRHEL6 DTS2をビルドするときに、私たちのチームは同じエラーを受け取りました。 CMakeがデフォルトであると思われる ゴールドリンカー の代わりにGNUリンカーを使用してこれを解決しました。

コンパイラーのコマンドラインで、-Wl,-Fuse-ld=goldを探し、それを取り除きます!

CMakeビルドシステムでは、追加オプション-DCOL_WITHOUT_GOLDを使用してビルドスクリプトを呼び出すことで機能しました。

1
user611249

apt-get install binutils-goldを介してゴールドリンカーをインストールできます。

私にとっては、binutils-goldが/usr/bin/ld.goldをインストールし、scc経由でgccが完全なホストトリプルで名前が付けられたバイナリ、たとえばx86_64-nptl-linux-gnu-ld.gold。 ln -s /usr/bin/ld.gold /usr/bin/x86_64-nptl-linux-gnu-ld.goldにシンボリックリンクしなければならなかったので、すべてうまくいきました。

0
Alex Miller