我应该如何在 Mac 上安装 Fortran 编译器?(OS X 10.x,x >= 4)

计算科学 软件 正则
2021-11-28 20:42:52

相关问题:Mac OS 在科学计算和 HPC 中的状态

计算科学中的大量软件包是用 Fortran 编写的,而且 Fortran 不会消失。构建其他软件包也需要 Fortran 编译器(一个值得注意的例子是SciPy)。

但是,Mac OS X 不包含 Fortran 编译器。我应该如何在我的机器上安装 Fortran 编译器?

3个回答

选择你的毒药。我建议使用 Homebrew。除了“Fink”和“其他方法”之外,我已经尝试了所有这些方法。最初,当我写这个答案时,我更喜欢 MacPorts。从那以后的两年里,Homebrew 作为一个项目已经有了很大的发展,并且证明比 MacPorts 更易于维护,MacPorts 可能需要大量的PATH黑客攻击。

安装与系统编译器匹配的版本

如果您希望 gfortran 的版本与您机器上安装的 gcc、g++ 等版本相匹配,请从此处下载相应版本的 gfortran R 开发人员SciPy 开发人员推荐这种方法

  • 优点:与 XCode 或Kenneth Reitz 的安装程序安装的编译器版本匹配;不太可能干扰操作系统升级;与 MacPorts(可能还有 Fink 和 Homebrew)很好地共存,因为它安装到/usr/bin. 不会破坏现有的编译器。不需要编辑PATH
  • 缺点:编译器堆栈会很旧。(GCC 4.2.1 是最新的 Apple 编译器;它于 2007 年发布。)安装到/usr/bin.

从 HPC Mac OS X 安装预编译的最新二进制文件

HPC Mac OS X具有最新版本的 GCC(在撰写本文时为 4.8.0(实验性))的二进制文件,以及 g77 二进制文件和基于 f2c 的编译器。PETSc 开发人员在他们的FAQ中推荐了这种方法。

  • 优点:使用正确的命令,安装在/usr/local最新。不会破坏现有的系统编译器或上述方法。不会干扰操作系统升级。
  • 缺点:需要编辑PATH在版本之间切换没有简单的方法。(您可以修改 PATH,删除编译器安装,或围绕它进行安装。)将破坏其他安装编译器的方法,/usr/local因为编译器二进制文件仅命名为“gcc”、“g++”等(没有版本号,也没有任何符号链接)。

使用 MacPorts

MacPorts有许多版本的编译器可供使用。

  • 优点:安装在/opt/localport select可用于在编译器版本(包括系统编译器)之间切换。不会干扰操作系统升级。
  • 缺点:安装端口往往需要整个“软件生态系统”。编译器不包含调试符号,这可能会在使用调试器或安装 PETSc 时造成问题。Sean Farley提出了一些解决方法。)还需要更改PATH. 可能会干扰 Homebrew 和 Fink 安装。(请参阅SuperUser 上的这篇文章。)

使用自制软件

Homebrew也可用于安装 Fortran 编译器。

  • 优点:易于使用的包管理器;安装与“安装与系统编译器匹配的版本”中相同的 Fortran 编译器。只安装您需要的(与 MacPorts 相比)。可以使用备用存储库 homebrew-dupes 安装更新的 GCC (4.7.0) 堆栈。
  • 缺点:继承了“安装与系统编译器匹配的版本”的所有缺点。在安装其他(非 Homebrew)软件时可能需要遵循 Homebrew 范例,/usr/local以避免弄乱任何东西。可能会干扰 MacPorts 和 Fink 的安装。(请参阅SuperUser 上的这篇文章。)需要更改PATH安装可能依赖于系统库,这意味着 Homebrew 软件包的依赖关系可能会在操作系统升级时中断。(请参阅这篇文章。)我不希望在安装 gfortran 时存在系统库依赖关系,但在安装其他 Homebrew 软件包时可能存在此类依赖关系。

使用芬克

理论上,你可以使用Fink来安装 gfortran。我没用过,也不知道有谁用过(并且愿意说些积极的话)。

其他方法

GFortran wiki上列出了其他二进制文件和链接上面已经列出了一些链接。其余安装方法可能与上述方法冲突,也可能不冲突;使用风险自负。

EasyBuild ( http://hpcugent.github.com/easybuild ) 允许您轻松构建和安装自己的 GCC 编译器集。

基本上,你给它一个简单的 easyconfig (.eb) 文件,指定你想要构建的内容(GCC + 版本 + 你想要编译器的语言集 + ...),然后构建和安装是一个单一的命令。我会说它有点像 Homebrew,但它给了你更多的自由。

此外,EasyBuild 支持许多其他(科学)软件包,可以使用单个命令构建和安装,因此值得研究。

免责声明:我是 EasyBuild 团队的一员。构建 GCC(包括 gfortran)应该可以在 OS X 上运行,但其他构建可能会很麻烦。我们正在努力,如果您遇到麻烦,请告诉我们。

我建议在 MacOS 上使用 Intel Fortran Composer。它很好,最新并且有效。一件消极的事情,它不是免费的。我认为有 30 天的免费评估。

在 Linux 下,他们提供免费的非商业版本。