我在使用gfortran编译一个简单的fortran-90文件时遇到一个奇怪的错误。我在macOS莫哈韦系统上工作。我安装了gfortran 8.2.0,我通过以下操作进行了检查:
Input: gfortran --version
Output: GNU Fortran (GCC) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
这表明gfortran安装正确,我也通过简单地键入以下内容来确认:gfortran输入到终端中,终端将返回:
gfortran: fatal error: no input files
compilation terminated.
然而,当我尝试这样编译我的文件时:
gfortran hello.f90 -o hello.x
我收到一个错误消息,内容如下:
ld: library not found for -lSystem
collect2: error: ld returned 1 exit status
我试过用不同的方法编译,也试过在.bash_profile中设置LD_LIBRARY_PATH,如https://gcc.gnu.org/wiki/GFortranBinaries32Linux所述,但我仍然得到同样的错误。gfortran目录的路径名为:/usr/local/gfortran,但是在/usr/local/bin中可以找到另一个不是目录的gfortran
打字:
which gfortran
输出:
/usr/local/bin/gfortran
以及此目录的长列表搜索:
Input: ls -l /usr/local/bin/gfortran
Output: lrwxr-xr-x 1 root wheel 32 15 May 14:07
/usr/local/bin/gfortran -> /usr/local/gfortran/bin/gfortran
我如何修复这个地方的一切似乎是正确的安装?
如有任何帮助,我们将不胜感激!
9条答案
按热度按时间6ioyuze21#
在macOS大苏尔v11.1上:
相关SO岗位:https://apple.stackexchange.com/questions/408999/gfortran-compiler-error-on-mac-os-big-sur
修复的方法是将stdlib添加到
$LIBRARY_PATH
中。由于某些原因,在11.1中,它不再是标准的$PATH
中的函数。(or将其添加到登录文件并重新启动终端)。
idfiyjo82#
我也会插话(2020年12月19日),我刚刚从MacOS莫哈韦更新到 Catalina ,突然出现了这个错误。
它解决本身
dzhpxtsq3#
我在我的
~/.profile
中添加了以下内容:而且很管用。
6ss1mwsb4#
更新:我尝试了建议的方法,并使用homebrew从gcc包安装了gfortran构建,这给了我一个更新版本的gfortran,我的问题得到了修复!
rjee0c155#
我也遇到了同样的问题,但是使用homebrew从gcc包安装gfortran build没有帮助。相反,我使用homebrew安装了整个gcc:
brew install gcc
这就解决了问题。
mznpcxlj6#
适用于使用MacPorts的用户。
我做了
ls -l /Library/Developer/CommandLineTools/SDKs/
,发现Xcode已经安装了一个用于 Catalina 的SDK和一个用于Big Sur的SDK。我更改了MacOSX.sdk
的软链接,以指向Catalina版本。gupuwyp27#
只需要在.zshrc的末尾放置以下行:
并再次运行我的Fortran代码进行编译-成功!-lSystem的问题在我的MacOS系统中已经解决了。
ivqmmu1c8#
我遇到了这个问题,我尝试了很多方法来解决这个问题,但只有使用这些“both”命令才能解决它:
qpgpyjmq9#
我最近有一个
Mac OS从v10升级到v11(Big Sur)后出现问题。我使用的是
Xcode 12.3
,并且我使用brew install gcc
安装了gfortran 10.2.0
。尝试brew reinstall gcc
后,我仍然看到错误。我可以使用以下命令解决问题:但我不知道为什么会这样。