我正在尝试为学校编译一个基本的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;
}
答案 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搜索路径。