如何指定 MacPorts 使用哪个 GCC?

如何指定 MacPorts 使用哪个 GCC?

我编译了 GCC 4.4.3 并将其安装在 /usr/local/bin 中,但每当我通过 MacPorts 1.8.2 安装端口时,详细输出都会显示 MacPorts 正在使用 /usr/bin/gcc-4.2:

检查 gcc.../usr/bin/gcc-4.2

如何让 MacPorts 找到我自己的 GCC 4.4.3?这是我现有的路径:

/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/lib:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

我正在运行 Mac OS X 10.6.2 Snow Leopard。

答案1

第一个答案:不要!根据我的经验,GCC 4.4.3 在 Snow Leopard 上无法正常工作。它会导致零长度字符串出现问题。

第二个答案:编辑 /usr/bin 中的符号链接以引用 4.4 内容。这是我为此编写的脚本:

rm /usr/bin/c++ 
ln -s /usr/bin/c++-${1} /usr/bin/c++
rm /usr/bin/cc
ln -s /usr/bin/cc-${1} /usr/bin/cc
rm /usr/bin/cpp
ln -s /usr/bin/cpp-${1} /usr/bin/cpp
rm /usr/bin/g++
ln -s /usr/bin/g++-${1} /usr/bin/g++
rm /usr/bin/gcc
ln -s /usr/bin/gcc-${1} /usr/bin/gcc
rm /usr/bin/gcov
ln -s /usr/bin/gcov-${1} /usr/bin/gcov

我将其命名为 chgCver,因此要将编译器更改为 4.4,我会输入chgCver 4.4。当然,在运行此命令之前,您还需要确保 c++-4.4 指向正确的位置(可能是/opt/local/bin/gcc-mp-4.4)等。如果您倾向于忽略我的第一个和第三个答案,我可以为您提供更多细节。

第三个答案:不要!(见第一个答案。)

答案2

MacPorts 尽可能使用 Apple 提供的编译器,因为它们针对该平台进行了高度修补。例如,它们允许通过指定 -arch 标志为多种架构构建,而 FSF gcc 则无法做到这一点。

如果你更改 /usr/bin/ 中的符号链接抄送,MacPorts 仍将尝试使用只有 Apple 版本才能理解的标志。这可能导致无法使用 MacPorts 编译任何内容。

只需相信 MacPorts 开发人员,使用 Apple 提供的编译器是最好的方法。

答案3

配置.编译器Portfile 中的变量如下:

configure.compiler    macports-gcc-4.3

或附加配置.编译器=macports-gcc-4.3按照你的命令。

参见此维基页面

相关内容