9

学校向けの基本的な C++ プログラムをコンパイルしようとしていますが、Mac ターミナル (10.7.6) から実行しようとすると、次のメッセージが表示されます。

ld: library not found for -lgcc_ext.10.5
collect2: error: ld returned 1 exit status

私は間違いなく正しいディレクトリにいて、XCode コマンド ライン ツールをインストールしています。これが私のコマンドプロンプトです:

g++ -o chapter_2 hello_world.cpp

これが私の基本的なC++プログラムです。

#include <iostream>

using namespace std;

int main(){

  cout << "Hello world" << endl;

}
4

3 に答える 3

2

Judd が指摘したように、問題はリンカーが libgcc_ext.10.5 を見つけられないことです。これに対する理想的な解決策はありませんが、私にとってうまくいったのは、homebrewを使用して gcc-4.8 をインストールし、新しい gcc を使用することでした。

brew install gcc48

今ではgcc49さえあると思います。これを使用すると、問題なくコンパイルできました (ただし、明示的に変更しない限り、古い gcc バージョンを指しているため$ gcc-4.8 ...、コンソールで使用する必要があったことに注意してください)。$ gcc ...

于 2014-03-19T18:39:40.613 に答える
1

Homebrew によってインストールされた現在の XCode と gcc の両方で、OS X 10.8 でも同じ問題が発生しました。

私がチェックしたとき$ which g++、それは与えまし/usr/local/bin/g++た。

だから私はこのパスをコメントしました.bash_profile

#PATH="/usr/local/bin:${PATH}"

現在、そのバージョン$ which g++/usr/bin/g++、それが XCode からのものであり、ld: library not found for -lgcc_ext.10.5エラーがないことを示しています。

于 2015-01-28T16:09:06.403 に答える
0

私は Mac 派ではありませんが、開発環境が正しく設定されていないため、リンカがライブラリ (libgcc_ext.10.5) を見つけられないことが問題であることは認識しています。/usr/lib または /usr/local/lib などにあると思います。aを実行ld --helpして、リンカーの検索パスがどのように指定されているかを確認してください。(ld はリンクを行うプログラムであり、コンパイルが完了すると g++ によって呼び出されます。) 次に、マシン上でライブラリを見つけて、そのパスを ld 検索パスに追加します。

于 2013-05-08T04:08:07.270 に答える