【问题标题】:Change GCC Version to 4.7 on Mac OS X在 Mac OS X 上将 GCC 版本更改为 4.7
【发布时间】:2013-01-10 04:06:26
【问题描述】:

在 OS X 上,我目前安装了几个版本的 gcc。每当我使用gcc -vg++ -v 时,它都会告诉我:gcc version 4.2.1。不过,为了利用 C++11,我已经安装了 gcc 4.7。如何更改它以使 gcc/g++ 指向 4.7 而不是 4.2.1?

编辑:我有自制软件,而不是 macports。

【问题讨论】:

  • 你使用 macport 吗?端口选择可以吗?
  • 不幸的是,我使用自制软件。我能找到指向 macports 的唯一其他解决方案。
  • 我没有使用自制软件。我认为您可以以某种方式使用 abs 路径

标签: macos gcc g++


【解决方案1】:

我认为你可以做这样的事情。 转至/usr/bin

假设您已在 Mavericks 中使用 home brew 安装了 gcc-4.7。 然后输入:

cd /usr/bin
sudo mv gcc gcc_mavs
sudo ln -s /usr/local/Cellar/gcc48/4.7.0/bin/gcc-4.7 gcc

这个类型后验证你是否选择了正确的gcc编译器。

gcc -v

【讨论】:

    【解决方案2】:

    如果我们不知道其他安装的完整路径,这是一个棘手的问题。但基本上你可以在本地用户.profile 设置中更改 $PATH 顺序。因此,假设您的 4.7 安装在 /usr/local/bin/ 中,并且我们知道 Apple 默认版本在 /usr/bin/ 中,然后编辑您的 .profile,因此 /usr/local/bin/ 在 $PATH 顺序中位于 /usr/bin/ 之前。

    默认应该是这样的:

    导出 PATH=/usr/bin:/usr/local/bin:[etc, etc, etc]

    调整后应该是这样的:

    导出 PATH=/usr/local/bin:/usr/bin:[etc, etc, etc]

    有一种方法可以强制所有用户在系统范围内进行此更改,但我不建议这样做。不要乱用 Apple 实现 *nix 环境的更深层次(通常是非标准)的方式。将其保存在您的用户本地。

    编辑: Check the discussion here 看看提供的任何解决方案是否可以帮助您。通过 MacPorts 安装 gcc_select 似乎是最干净的解决方案。

    【讨论】:

    • 我认为 4.7 在 /usr/bin/ 中,所以它与您指定的默认值没有什么不同。此外,我在之前使用的 gcc 上使用了 unlink,它从 /usr/bin/ 文件夹中消失了,所以我认为这可能支持这一点?那么我现在如何将 gcc-4.7 链接到 gcc 呢?
    • 就像我说的,在不知道您设置的文件系统拓扑之前,不太确定该说什么或做什么来提供帮助。
    • PS:检查我刚刚对上面的答案所做的编辑。另一个讨论似乎提供了一个更清洁的解决方案。
    • 因为我目前正在使用自制软件,所以我觉得切换到 macports 可能会很痛苦。但我正在研究它,因为我并没有过度依赖自制软件。此外,所有安装似乎都位于 /usr/bin/ 中,这有帮助吗?
    • 所以 gcc 和 g++ 目前分别作为 gcc-4.7 和 g++-4.7 的链接存在,并且位于 /usr/bin 中。此外,/usr/bin 位于 $PATH 的开头。我需要做什么才能在任何地方键入 gcc 或 g++ 才能使用它?
    【解决方案3】:

    我在网上找到了一个非常好的教程。虽然它有点旧(描述了 gcc 3.2 的过程),但仍然可以使用相同的通用方法 http://www-numi.fnal.gov/offline_software/srt_public_context/WebDocs/install_gcc.html

    【讨论】:

      猜你喜欢
      • 2011-01-02
      • 2020-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多