Fortran 代码无法使用 gfortran 在 Mac 上编译
Fortran codes won't compile on Mac with gfortran
我最近从 SGI、Sun 工作站环境转移到 Mac。 SGI 和 Sun 带有 Fortran 编译器,所以我多年来为 post 处理和分析模拟数据编写了大约 100 个小的 f77 代码。我希望使用 gfortran 在我的 iMac 上获得这些代码 运行。其中大部分都是非常简单的代码,但我无法编译和执行它们。我尝试从基础开始,并从 gfortran 帮助页面编写了 Hello World 代码。我的代码 fortran.f 是:
program helloworld
print *, "hello world"
end program helloworld
当我尝试根据我输入的示例进行编译时:
gfortran fortran.f
但我不断收到错误消息:
FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag!
这与我在其他代码上收到的错误消息相同。有人可以告诉我我做错了什么吗?我想不出一个更简单的例子,但我似乎无法让它发挥作用。
谈到 macOS,我认为构建表单源是您可以拥有的最佳方法。您可以通过直接从以下地址下载和编译作为 GCC 一部分的 GFortran 来轻松实现这一点:https://gcc.gnu.org/wiki/GFortran
但是,您需要注意的事情很少:
确保你已经安装了XCode,你可以在这里
XCode是免费的
确保你有命令行工具
您可以从 developer.apple.com
或直接来自 XCode。可能 XCode 会告诉你在第一次执行时安装命令行工具
过去,运行命令如"svn",当未安装命令行工具时,也会触发安装。
编译 GCC
> ./configure --prefix=$HOME/opt/usr/local
> make all
> make install
或者,您可以使用来自 GFortran 的 macOS 包进行安装
使用基于 Fortran 的 MPI 代码的完整示例:
如果您的 gfortran
是很久以前安装的并且您在安装后更新了 macOS,它可能需要重新安装才能正确对齐并与最新的 macOS 工具和库。
我的建议是:
- 卸载
gfortran
,
- 检查 Xcode 及其命令行工具是否是最新的,
- 重新安装
gfortran
.
每个步骤的提示如下:
请注意 gfortran
是 GCC 的一部分 - "GNU Compiler Collection".
如果您通过 homebrew 安装了 gfortran
,您可以使用以下方法删除它:
brew rm gcc
您可以通过转到 AppStore 并单击右上角的 Updates
来更新 Xcode。
Xcode 命令行工具包括 make
和 git
以及编译器的命令行版本。您可以使用 install/update Xcode 命令行工具:
xcode-select --install
您可以使用 homebrew 安装 gfortran
使用:
brew install gcc
完成后,您应确保 PATH
在开头附近包含 /usr/local/bin
并且 运行:
时没有错误
brew doctor
这是一个很棒的实用程序,可以检查您的 homebrew 配置是否正确。
我所要做的就是改变路径。
最初,我的 PATH 类似于
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin
由于这个原因,没有调用 /usr/bin 目录中的默认汇编器 (as)。
为了能够调用正确的汇编程序 (as),我必须将 /usr/bin 添加到 /opt/local/bin 之前(之前)的 PATH,即在 Mac 上可以通过编辑 ~/.bash_profile 添加,这样 $PATH 看起来像
/usr/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin
编辑后,在命令提示符处执行:
来源/etc/bash_profile
这对我有用。
我最近从 SGI、Sun 工作站环境转移到 Mac。 SGI 和 Sun 带有 Fortran 编译器,所以我多年来为 post 处理和分析模拟数据编写了大约 100 个小的 f77 代码。我希望使用 gfortran 在我的 iMac 上获得这些代码 运行。其中大部分都是非常简单的代码,但我无法编译和执行它们。我尝试从基础开始,并从 gfortran 帮助页面编写了 Hello World 代码。我的代码 fortran.f 是:
program helloworld
print *, "hello world"
end program helloworld
当我尝试根据我输入的示例进行编译时:
gfortran fortran.f
但我不断收到错误消息:
FATAL:/opt/local/bin/../libexec/as/x86_64/as: I don't understand 'm' flag!
这与我在其他代码上收到的错误消息相同。有人可以告诉我我做错了什么吗?我想不出一个更简单的例子,但我似乎无法让它发挥作用。
谈到 macOS,我认为构建表单源是您可以拥有的最佳方法。您可以通过直接从以下地址下载和编译作为 GCC 一部分的 GFortran 来轻松实现这一点:https://gcc.gnu.org/wiki/GFortran
但是,您需要注意的事情很少:
确保你已经安装了XCode,你可以在这里
XCode是免费的
确保你有命令行工具
您可以从 developer.apple.com
或直接来自 XCode。可能 XCode 会告诉你在第一次执行时安装命令行工具
过去,运行命令如"svn",当未安装命令行工具时,也会触发安装。
编译 GCC
> ./configure --prefix=$HOME/opt/usr/local > make all > make install
或者,您可以使用来自 GFortran 的 macOS 包进行安装
使用基于 Fortran 的 MPI 代码的完整示例:
如果您的 gfortran
是很久以前安装的并且您在安装后更新了 macOS,它可能需要重新安装才能正确对齐并与最新的 macOS 工具和库。
我的建议是:
- 卸载
gfortran
, - 检查 Xcode 及其命令行工具是否是最新的,
- 重新安装
gfortran
.
每个步骤的提示如下:
请注意 gfortran
是 GCC 的一部分 - "GNU Compiler Collection".
如果您通过 homebrew 安装了 gfortran
,您可以使用以下方法删除它:
brew rm gcc
您可以通过转到 AppStore 并单击右上角的 Updates
来更新 Xcode。
Xcode 命令行工具包括 make
和 git
以及编译器的命令行版本。您可以使用 install/update Xcode 命令行工具:
xcode-select --install
您可以使用 homebrew 安装 gfortran
使用:
brew install gcc
完成后,您应确保 PATH
在开头附近包含 /usr/local/bin
并且 运行:
brew doctor
这是一个很棒的实用程序,可以检查您的 homebrew 配置是否正确。
我所要做的就是改变路径。
最初,我的 PATH 类似于
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin
由于这个原因,没有调用 /usr/bin 目录中的默认汇编器 (as)。
为了能够调用正确的汇编程序 (as),我必须将 /usr/bin 添加到 /opt/local/bin 之前(之前)的 PATH,即在 Mac 上可以通过编辑 ~/.bash_profile 添加,这样 $PATH 看起来像
/usr/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin
编辑后,在命令提示符处执行:
来源/etc/bash_profile
这对我有用。