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-4.8 ...在控制台中使用,因为它$ gcc ...仍然指向旧的 gcc 版本(除非你明确地改变它)。

于 2014-03-19T18:39:40.613 回答
1

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

当我检查$ 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 或类似的东西中。您可以尝试做 ald --help并查看是否可以找出链接器搜索路径是如何指定的。(ld 是执行链接的程序,g++ 在编译完成时调用它。)然后在您的机器上找到该库并将该路径添加到 ld 搜索路径。

于 2013-05-08T04:08:07.270 回答