3

我将我的 Mac 更新到 OS X 10.9 GM,然后我发现 gfortran 不起作用。在构建任何程序时,它会显示:

ld: library not found for -lcrt1.10.5.o
collect2: ld return 1

有谁知道我可以如何解决这个问题?

4

3 回答 3

4

这个问题是因为 OS X 10.9 已经完全删除了 crt1.10.5.o 库所在的 /Developer 目录。库已移至新的 Xcode 目录(确保 Xcode 也更新到最新版本 5.0.1+)。我发现crt1.10.5.o实际上隐藏在这里很深/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/S‌​DKs/MacOSX10.9.sdk/usr/lib。我相信应该有一种自动重定向 ld 的方法,但我不知道如何。所以现在我使用 -L 标志来编译。

gfortran ... -L /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/S‌​DKs/MacOSX10.9.sdk/usr/lib/

这对我来说是一种临时解决方案。我也在等待更好的解决方案出现。

于 2013-10-24T13:56:31.957 回答
3

http://hpc.sourceforge.net/ 已经为 Mac OS X Mavericks 10.9 编译了Gfortran

首先,cd 到 Mavericks 安装的根目录,以便将文件递归提取到正确的文件夹中

cd /
sudo wget http://prdownloads.sourceforge.net/hpc/gcc-4.9-bin.tar.gz
tar -xvf gcc-4.9-bin.tar.gz

gfortran --help
于 2013-10-27T16:19:36.943 回答
0

我有类似的问题(ld: library not found for -lcrt0.o)但我发现当我停止使用 gfortran 命令的 -static 标志时它们消失了。-static-libgcc 标志似乎没问题。

于 2016-05-11T17:36:39.357 回答