在 mac 上切换 gcc 版本

Posted

技术标签:

【中文标题】在 mac 上切换 gcc 版本【英文标题】:Switching gcc version on mac 【发布时间】:2012-01-26 23:12:47 【问题描述】:

我安装了最新的 XCode (4D199) 并在我输入时在终端中

new-host-2: me$ gcc -version
i686-apple-darwin11-llvm-gcc-4.2: no input files

这是默认的 xcode/mac gcc 编译器版本吗?因为当我尝试做一个

sudo easy_install cython 

我明白了:

Running Cython-0.15.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-qS3Kqb/Cython-0.15.1/egg-dist-tmp-Zh0Vnv
cc1: error: unrecognized command line option "-arch"
cc1: error: unrecognized command line option "-arch"

我听说 -arch 是 Apple GCC 编译器专用的功能。我想当我从 macports 安装一个端口时,我记得它安装了一个名为“llvm”的东西,现在我怀疑它正在被使用,而不是 XCODE 附带的那个。

有什么办法可以换回来吗?

哦,当我输入“sudo port select gcc”时,我得到了(这可能与知道我拥有哪个 gcc 版本有关):

Available versions for gcc:
    apple-gcc42
    gcc42
    llvm-gcc42
    mp-gcc44
    mp-llvm-gcc42
    none

【问题讨论】:

【参考方案1】:

听起来你得到的是非苹果版本。如果您不需要任何非标准编译器,我会删除 macports 已安装的任何编译器。 Apple 的基础架构非常不同,使用 macports 的编译器很容易导致问题。

【讨论】:

【参考方案2】:

这与您的问题不太相关,但您可以在这里找到解决方案:Can't install Ruby under Lion with RVM – GCC issues

此答案已多次编辑,现在包含三个替代解决方案。跳到最后,先尝试简单的“edit 3”解决方案,它似乎对大多数人都有效。 您需要一个非 LLVM 版本的 GCC,它不再包含在 XCode 4.2 中。自己安装(或暂时降级到 XCode 4.1),然后执行 CC=/usr/local/bin/gcc-4.2 rvm install 1.9.3(替换非 LLVM gcc 的路径)。

编辑:https://github.com/kennethreitz/osx-gcc-installer/downloads 可能有助于安装 GCC。

编辑 2(显然是最简单的解决方案):或者,您可以尝试将 --with-gcc=clang 添加到参数以配置 Ruby 以使用 clang。

编辑 3: rvm install 1.9.3 --with-gcc=clang 为您执行此操作。

【讨论】:

以上是关于在 mac 上切换 gcc 版本的主要内容,如果未能解决你的问题,请参考以下文章

gcc 多版本安装以及切换

在Mac上Python多版本切换

如何在 gcc 版本之间切换以在 manjaro linux 上使用 cudnn 5 加速(cuda 7.5)构建 torch7 或 caffe?

Mac 上Python多版本切换

CenotOS上的gcc切换版本(编译安装)

CenotOS上的gcc切换版本(编译安装)