如何用 Homebrew gfortran 替换我的 HPC gfortran?

How do I replace my HPC gfortran with Homebrew gfortran?

我目前 Xcode(以及命令行工具)和 gfrotran from HPC 安装在我的 Yosemite 系统上,我想 替换 HPC 的 gfortran 与 Homebrew 的(因为我在使用 HPC gfortran 构建 Python 包时遇到问题)。

完成这个的步骤是什么?

我想确定

  1. HPC 的 gfortran 不见了(我只想要一个 Fortran)和
  2. Apple 的工具仍然有效(用于 Xcode、Swift、OS X 和 iOS 开发等)

当然还有

  1. 我有一个可以可靠地构建 Python 包的 gfortran 工作版本。

这能做到吗?例如,我看到 Homebrew 的 gfortran 现在被打包为 gcc 的一部分,所以看起来我最终会得到两个版本的 gcc(我想避免)或一个不能很好地与 Xcode.

完成 1-3 的步骤是什么?

我最近解决了同样的问题。这就是我 got/have 它在我的 Yosemite 系统上工作的方式。

关于自制软件和命令行工具编译器的一些事情:

  1. 你通过 home-brew 获得的编译器将覆盖现有的如果它在同一个地方。如果你有一个从命令行工具获得的 Fortran 编译器,那么它不会受到影响。(Home-brew 会在做任何事情之前警告你)

  2. 您通过命令行工具获得的编译器的二进制文件在 /usr/bin 中。

  3. 您使用自制软件获得的编译器(以及其他任何东西)存储在地窖中(/usr/local/Cellar) 可执行文件链接到目录 /usr/local/bin

怎么办?

  1. 修改路径: 我只需要使用通过自制软件获得的编译器,所以我将 /usr/local/bin 移到了 $path 的顶部,这确保了 /usr/local/bin 目录在 /usr/bin 之前被搜索。

  2. 使用别名: 您可以为每个编译器创建一个别名,以便您可以根据需要互换使用它们。要创建别名,您必须修改 shell-rc 文件。在我的系统上,我使用 tcsh,并为自制编译器创建一个别名,我会在我的 ~/.cshrc 文件中添加类似的内容。

    alias brewgfortran '/usr/local/bin/gfortran'
    

    这现在执行存储在我的地窖中并链接到 /usr/local/bin/gfortran/

  3. 的自制 gfortran-4.9 可执行文件
  4. 如果您绝对想摆脱苹果编译器,您当然可以将它们从 /usr/bin/ 目录中完全删除。我不认为这是最好的主意。我已经向您展示了一些避免使用它们的方法,如果您出于某种原因需要它们,您将成为 SOL。我不能说你需要的那些工具是否可以在没有它们的情况下工作,因为我从未使用过任何这些工具,但我知道它会为你构建 python 包(抱歉希望这仍然有帮助)

注意: 如果您使用的 shell 与我不同,别名的语法略有不同(我认为)只是 google它或 man alias