ld:文件太小长度=0文件gfortran 编译失败

问题描述

在 Mac OS (Catalina) 上 命令 gfortran -o file file.f 通常给出一个可执行的“文件” 但是现在我的环境已损坏,我得到

>ld: file too small (length=0) file '/var/folders/dz/qjjbfdzs663fd6jmv27hcz300000gn/T//ccZ1MxJv.o' for architecture x86_64

我重新安装了 Xcode 和 gfortran(版本 12... 和 10...)以及“命令行工具”并删除了 Library/Developer/DerivedData,但问题仍然存在。这个网站上有一些建议,这个问题涉及 Xcode“Clean”,但我通常不会显式调用 Xcode(我在终端窗口中工作,发出命令行。)我没有看到如何将 Xclass 定向到我的“项目”本身就是为了“清洁”。

我也找不到上面的文件:它没有在 ...T/ 目录中看到,或者(T// 无论如何)。

对于它的价值 - 尝试编译、链接和 ld 任何 .f 程序现在都会给出这个致命错误,每个都有不同的 ...T..// 文件

解决方法

总的来说,我发现从即用型安装程序中使用 XCodegfortran 真的很棘手。我不是说它总是坏的,但很多时候我都遇到过某种问题。

相反,我建议从源代码安装所有内容。看看这里:

GNU 上安装基于 macOS 的链

https://www.owsiak.org/building-opencoarrays-on-macos-everything-from-the-sources-gcc-9-2-0/

然后,您可以使用模块轻松维护它

https://www.owsiak.org/modules-as-a-convenient-way-of-choosing-build-chain-on-macos/

我知道与 brew 或其他一些工具相比,它更耗时,但在使用从源代码构建的整个链时,我从未遇到过编译、链接等方面的问题。