我正在按照在线教程使用 homebrew 安装一些 Python 模块,其中一个步骤是安装 gfortranbrew install gfortran
。后来,我尝试使用另一个第三方安装脚本来安装一些Python模块,之后我意识到该脚本所做的部分工作是下载并运行http://r.research.att.com/tools/gcc-42-5666.3-darwin11.pkg http://r.research.att.com/tools/gcc-42-5666.3-darwin11.pkg。我对 gfortran 不太了解,但看看gfortran 的冲泡公式 https://github.com/mxcl/homebrew/blob/master/Library/Formula/gfortran.rb看来,brew 使用的版本与 att.com 的版本不同。这会导致未来出现问题吗?我做到了brew uninstall gfortran
and brew install gfortran
再次,到目前为止,事情似乎是一样的(我尝试重新编译之前编译过的旧代码),但我不确定 att.com pkg 做了什么。 (如果重要的话,我有 OS X 10.8.2 和 XCode 4.2)。
这取决于其他 gfortran 安装程序的位置。一般来说,不会,不会冲突。 * Homebrew 旨在与第三方兼容gfortran
安装 - 它定义对通用“fortran”编译器的依赖关系,而不是对特定编译器的依赖关系gfortran
自制配方。 Homebrew 保留在 /usr/local 下,将主安装粘贴在 /usr/local/Cellar 中,并明智地符号链接到 /usr/local/lib 中。安装到 /usr/local 的其他安装程序只会阻止 Homebrew 链接其自己的编译器,但会与使用 Fortran 编译器的其他公式一起使用。 (假设gfortran
构建选项是兼容的。)
您链接到的特定 gcc-42 安装程序安装到/usr
,不至于/usr/local
.** 其二进制文件带有“-4.2”后缀;也就是说,它安装cpp-4.2
, g++-4.2
, gfortran-4.2
, 等等。因此,a)与 Homebrew gfortran 没有直接冲突,b)它不会直接影响/usr/local/bin/gfortran
由 Homebrew 安装。
安装了这两个 gfortrans 的编译器将被你构建的东西所选择,这将取决于构建的工作方式,但大多数人都会寻找简单的gfortran
因此,他们会找到 Homebrew 版本,除非您明确指示他们使用 AT&T 提供的版本。您没有指定如何构建东西,但由于您使用的是brew,我假设它是通过brew
或者命令行工具,在这种情况下,我认为他们可能都看到了 Homebrew gfortran 而忽略了这个。查看其构建过程的详细输出以确定答案。
*当然取决于您所说的“冲突”的含义。
**旁注:据我所知,没有简单的方法可以通过查看软件包或安装管理器来解决这个问题。我刚刚做了一个find /usr
在运行该安装程序之前和之后,并做了diff
在输出上:
$ diff usr_before_any_installs.txt usr_after_att_install.txt | grep '^[<>]'
> /usr/bin/c++-4.2
> /usr/bin/cpp-4.2
> /usr/bin/g++-4.2
> /usr/bin/gcc-4.2
> /usr/bin/gfortran-4.2
> /usr/bin/i686-apple-darwin11-cpp-4.2.1
> /usr/bin/i686-apple-darwin11-g++-4.2.1
> /usr/bin/i686-apple-darwin11-gcc-4.2.1
> /usr/bin/i686-apple-darwin11-gfortran-4.2.1
> /usr/include/gcc
> /usr/include/gcc/darwin
> /usr/include/gcc/darwin/4.2
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)