dat*_*ice 8 macos xcode gcc fortran gfortran
尝试使用 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.
Run Code Online (Sandbox Code Playgroud)
这表明 gfortran 安装正确,我还通过在终端中简单地键入:gfortran 来确认这一点,它返回:
gfortran: fatal error: no input files
compilation terminated.
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试像这样编译我的文件时:
gfortran hello.f90 -o hello.x
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,内容如下:
ld: library not found for -lSystem
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我尝试以不同的方式进行编译,并且还尝试按照https://gcc.gnu.org/wiki/GFortranBinaries32Linux 的描述在 .bash_profile 中设置 LD_LIBRARY_PATH,但我仍然遇到相同的错误。gfortran 目录的路径名是:/usr/local/gfortran,但是在 /usr/local/bin 中可以找到另一个不是目录的 gfortran
打字:
which gfortran
Run Code Online (Sandbox Code Playgroud)
输出:
/usr/local/bin/gfortran
Run Code Online (Sandbox Code Playgroud)
以及对该目录的长列表搜索:
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
Run Code Online (Sandbox Code Playgroud)
在一切似乎都正确安装的地方,我该如何解决这个问题?
任何帮助将不胜感激!
yeg*_*256 12
我将此添加到我的~/.profile:
export SDKROOT=$(xcrun --sdk macosx --show-sdk-path)
export LIBRARY_PATH="$LIBRARY_PATH:$SDKROOT/usr/lib"
Run Code Online (Sandbox Code Playgroud)
它有效。
Jac*_*aib 10
在 macOS Big Sur v11.1 上:
相关SO帖子:https : //apple.stackexchange.com/questions/408999/gfortran-compiler-error-on-mac-os-big-sur
解决方法是将 stdlib 添加到您的$LIBRARY_PATH. 出于某种原因,它$PATH在 11.1 上不再符合您的标准。
export LIBRARY_PATH="$LIBRARY_PATH:/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib"
Run Code Online (Sandbox Code Playgroud)
(或将其添加到登录文件并重新启动终端)。
小智 5
我还要补充一下(2020 年 12 月 19 日),我刚刚从 MacOS Mojave 更新到 Catalina,突然收到此错误。
它自行解决了
brew reinstall gcc
brew reinstall gfortran
Run Code Online (Sandbox Code Playgroud)
小智 1
我遇到了同样的问题,但是使用 homebrew 从 gcc 包安装 gfortran 构建没有帮助。相反,我使用 homebrew 安装了整个 gcc:
brew install gcc
这解决了问题。
| 归档时间: |
|
| 查看次数: |
4338 次 |
| 最近记录: |