LD:库找不到-lgcc_ext.10.5
我试图编译学校基本的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;
}
我不是一个MAC的家伙,但我认识的问题是,链接器无法找到库,(libgcc_ext.10.5),因为你的开发环境设置不正确。我希望它在/ usr/lib或/ usr/local/lib或者其他的东西中。您可以尝试执行ld --help
并查看是否可以找出如何指定链接器搜索路径。 (ld是执行链接的程序,g ++在完成编译时调用它)。然后在你的机器上找到这个库并将该路径添加到ld搜索路径中。
正如Judd指出的那样,问题是链接器找不到libgcc_ext.10.5。虽然我没有一个理想的解决方案,但对我而言,使用homebrew安装gcc-4.8并使用更新的gcc很有效。
brew install gcc48
我相信现在甚至还有gcc49。使用这个我可以毫无问题编译(但请注意,我不得不在控制台使用$ gcc-4.8 ...
,如$ gcc ...
仍然指向旧版本的编译(除非你明确地改变)。
我有同样的问题,在。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
错误。
我有类似的问题,这对我有用。请记住在完成后取消注释.bash_profile中的该行,否则将无法访问使用自制软件安装的任何内容。 –
确实libgcc_ext.10.5。*存在于系统中? – EHuhtala