当尝试使用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: 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,但是可以在/ 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
如何解决似乎已正确安装所有东西的问题?
任何帮助将不胜感激!
答案 0 :(得分:9)
在 macOS Big Sur v11.1 上:
相关 SO 帖子:https://apple.stackexchange.com/questions/408999/gfortran-compiler-error-on-mac-os-big-sur
解决方法是将 stdlib 添加到您的 $LIBRARY_PATH
。出于某种原因,它不再是 11.1 的标准 $PATH
。
export LIBRARY_PATH="$LIBRARY_PATH:/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
(或将其添加到登录文件并重新启动终端)。
答案 1 :(得分:3)
我还要提醒一下(2020 年 12 月 19 日),我刚刚从 MacOS Mojave 更新到 Catalina,突然出现此错误。
它自己解决了
brew reinstall gcc
brew reinstall gfortran
答案 2 :(得分:2)
我遇到了同样的问题,但是使用自制软件从gcc软件包安装gfortran build并没有帮助。相反,我使用自制软件安装了整个gcc:
brew install gcc
这解决了问题。
答案 3 :(得分:1)
更新:我尝试了建议,并使用自制软件从gcc软件包安装了gfortran构建,这为我提供了更高版本的gfortran,并且我的问题已解决!
答案 4 :(得分:1)
对于那些使用 MacPorts 的人。
# Installed `gcc8` and `gcc_select`
sudo port install gcc_select gcc8
# then to create "gfortran" softlink to "gfortran-mp-8"
sudo port select --set gcc gcc8
# and added to my .profile
export LIBRARY_PATH="$LIBRARY_PATH:/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
我做了ls -l /Library/Developer/CommandLineTools/SDKs/
,发现 Xcode 安装了一个用于 Catalina 的 SDK 和一个用于 Big Sur 的 SDK。我将 MacOSX.sdk
的软链接更改为指向 Catalina 版本。
答案 5 :(得分:0)
我最近有这个
ld: library not found for -lSystem
将Mac OS从v10升级到v11(大苏尔)后出现问题。我正在使用Xcode 12.3
,并且已经使用brew install gcc
安装了gfortran 10.2.0
。尝试brew reinstall gcc
后,我仍然看到错误。我可以使用以下方法解决问题:
brew install gfortran
但是我不知道为什么会这样。
答案 6 :(得分:0)
我遇到了这个问题,我尝试了很多方法来解决这个问题,但只使用这些“两个”命令就解决了:
brew reinstall gcc
brew reinstall gfortran