当我试图使用gfortran编译一个简单的Fortran-90文件时,我遇到了一个奇怪的错误。我正在macOS mojave系统上工作。我已经安装了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已经正确安装,我也通过在终端上简单地键入"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
我尝试过以不同的方式编译,并且像https://gcc.gnu.org/wiki/GFortranBinaries32Linux中所述,在.bash_profile中设置了LD_LIBRARY_PATH,但仍然遇到相同的错误。gfortran目录的路径名为:/usr/local/gfortran,但是另一个不是目录的gfortran可以在/usr/local/bin中找到。打字:
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
如何修复这个问题,即使所有东西都被正确安装了?
非常感谢任何帮助!
sudo rm -rf /Library/Developer/CommandLineTools
,然后运行xcode-select --install
,再运行sudo xcode-select --switch /Library/Developer/CommandLineTools
,如果 Xcode 版本太老可以更新版本,最后如果安装了Xcode可以运行sudo xcode-select -s /Applications/Xcode.app
。 - DawnSong