ld:找不到-lgcc_ext.10.5的库

时间:2013-02-04 20:20:19

标签: c++ gcc

我正在尝试为学校编译一个基本的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;

}

3 个答案:

答案 0 :(得分:2)

正如贾德指出的那样,问题是链接器无法找到libgcc_ext.10.5。虽然我没有一个理想的解决方案,但对我来说有用的是使用homebrew安装gcc-4.8,并使用更新的gcc。

brew install gcc48

我相信现在甚至还有gcc49。使用这个我能够编译没有问题(虽然请注意我必须在控制台中使用$ gcc-4.8 ...,因为$ gcc ...仍指向较旧的gcc版本(除非您明确更改它)。

答案 1 :(得分:1)

我在OS X 10.8上遇到了同样的问题,Homebrew安装了当前的XCode和gcc。

当我选中$ 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错误。

答案 2 :(得分:0)

我不是mac家伙,但我发现问题在于链接器无法找到库(libgcc_ext.10.5),因为您的开发环境设置不正确。我希望它在/ usr / lib或/ usr / local / lib或其他类似的东西。您可以尝试执行ld --help,看看是否可以找到链接器搜索路径的指定方式。 (ld是执行链接的程序,g ++在完成编译时调用它。)然后在您的机器上找到该库并将该路径添加到ld搜索路径。