2013-02-04 132 views
6

我试图编译学校基本的C++程序,当我尝试从Mac终端(10.7.6)运行它,我得到这个消息:LD:库找不到-lgcc_ext.10.5

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

确实libgcc_ext.10.5。*存在于系统中? – EHuhtala

回答

0

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

1

正如Judd指出的那样,问题是链接器找不到libgcc_ext.10.5。虽然我没有一个理想的解决方案,但对我而言,使用homebrew安装gcc-4.8并使用更新的gcc很有效。

brew install gcc48 

我相信现在甚至还有gcc49。使用这个我可以毫无问题编译(但请注意,我不得不在控制台使用$ gcc-4.8 ...,如$ gcc ...仍然指向旧版本的编译(除非你明确地改变)。

1

我有同样的问题,在。OS X 10.8,与自制安装了当前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错误。

+0

我有类似的问题,这对我有用。请记住在完成后取消注释.bash_profile中的该行,否则将无法访问使用自制软件安装的任何内容。 –