GFortran error: ld: library not found for -lSystem when trying to compile
GFortran error: ld: library not found for -lSystem when trying to compile
我在尝试使用 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 来确认这一点,returns:
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
我怎样才能解决这个似乎一切都已正确安装的问题?
如有任何帮助,我们将不胜感激!
更新:我尝试了建议并使用 homebrew 从 gcc 包安装了 gfortran 版本,这给了我一个更新版本的 gfortran,我的问题得到了解决!
我遇到了同样的问题,但是使用自制软件从 gcc 包安装 gfortran build 没有帮助。相反,我使用自制软件安装了整个 gcc:
brew install gcc
问题就解决了。
我最近有这个
ld: library not found for -lSystem
从 v10 Mac OS 升级到 v11 (Big Sur) 后出现问题。我使用 Xcode 12.3
并使用 brew install gcc
安装 gfortran 10.2.0
。尝试 brew reinstall gcc
后我仍然看到错误。我能够使用以下方法解决问题:
brew install gfortran
但我不知道为什么会这样。
我还要补充一下(2020 年 12 月 19 日),我刚刚从 MacOS Mojave 更新到 Catalina,突然出现此错误。
它自行解决了
brew reinstall gcc
brew reinstall gfortran
在 macOS Big Sur v11.1 上:
相关SO post: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"
(或将其添加到登录文件并重新启动终端)。
我遇到了这个问题,我尝试了很多方法来解决这个问题,但只有使用这些“两个”命令才能解决它:
brew reinstall gcc
brew reinstall gfortran
对于使用 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 安装了一个。我将 MacOSX.sdk
的软 link 更改为指向 Catalina 版本。
刚刚将这一行放在 .zshrc 的末尾:
export LIBRARY_PATH="$LIBRARY_PATH:/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
和运行我的Fort运行代码再次编译——成功! -lSystem 的问题在我的 macOS 系统中已经解决了。
我将此添加到我的 ~/.profile
:
export SDKROOT=$(xcrun --sdk macosx --show-sdk-path)
export LIBRARY_PATH="$SDKROOT/usr/lib"
而且有效。
我在尝试使用 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 来确认这一点,returns:
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
我怎样才能解决这个似乎一切都已正确安装的问题?
如有任何帮助,我们将不胜感激!
更新:我尝试了建议并使用 homebrew 从 gcc 包安装了 gfortran 版本,这给了我一个更新版本的 gfortran,我的问题得到了解决!
我遇到了同样的问题,但是使用自制软件从 gcc 包安装 gfortran build 没有帮助。相反,我使用自制软件安装了整个 gcc:
brew install gcc
问题就解决了。
我最近有这个
ld: library not found for -lSystem
从 v10 Mac OS 升级到 v11 (Big Sur) 后出现问题。我使用 Xcode 12.3
并使用 brew install gcc
安装 gfortran 10.2.0
。尝试 brew reinstall gcc
后我仍然看到错误。我能够使用以下方法解决问题:
brew install gfortran
但我不知道为什么会这样。
我还要补充一下(2020 年 12 月 19 日),我刚刚从 MacOS Mojave 更新到 Catalina,突然出现此错误。
它自行解决了
brew reinstall gcc
brew reinstall gfortran
在 macOS Big Sur v11.1 上:
相关SO post: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"
(或将其添加到登录文件并重新启动终端)。
我遇到了这个问题,我尝试了很多方法来解决这个问题,但只有使用这些“两个”命令才能解决它:
brew reinstall gcc
brew reinstall gfortran
对于使用 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 安装了一个。我将 MacOSX.sdk
的软 link 更改为指向 Catalina 版本。
刚刚将这一行放在 .zshrc 的末尾:
export LIBRARY_PATH="$LIBRARY_PATH:/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
和运行我的Fort运行代码再次编译——成功! -lSystem 的问题在我的 macOS 系统中已经解决了。
我将此添加到我的 ~/.profile
:
export SDKROOT=$(xcrun --sdk macosx --show-sdk-path)
export LIBRARY_PATH="$SDKROOT/usr/lib"
而且有效。