天天看点

将 Mac OS X 系统的 C、C++ 编译器从默认的 Clang 切换到 GCC

Preface

Mac 的 OS X 系统的 C语言 编译器用的是 Clang,如下图,在 Terminal 输入

gcc -v

或者

gcc --version

后,显示 C语言 的编译器:

将 Mac OS X 系统的 C、C++ 编译器从默认的 Clang 切换到 GCC

但是很多时候,比如说编译很多工具,如 Caffe,Clang 编译器会产生很多 warning 以及 error。虽然说 Clang、LLVM 啥的甩 GCC 几条街,但是我不想在这里浪费时间。干脆将编译器切换到大家默认的 GCC 。这样方便一些。

但是该怎么切换了,我之前也尝试过,没成功。今晚又一次尝试了,终于成功了。记录下来,一是可以给也想改变的人参考,二是以后再切换回 LLVM 的 Clang 的时候,有个参考。

将 Mac OS X 系统的 C、C++ 编译器从默认的 Clang 切换到 GCC

我参考了一些问答及博客文章,一是 stackoverflow 上这个人的回答:

http://stackoverflow.com/questions/20349104/using-gcc-instead-of-clang-in-ghci-or-ghc

这个人还需要在 Mac 上安装

ghc

命令,这东西我不知道是什么。但整整耗费了我 1G 的翻墙流量(正常下,得下到猴年马月)。但按照步骤来做,我自己碰见的情况却跟他的步骤对不上号,不敢瞎尝试。于是再找找其他办法。

随后,我在 stackexchange 上找到了下面的问答:

http://apple.stackexchange.com/questions/99077/how-to-set-gcc-4-8-as-default-gcc-compiler

抱着尝试的心,去试了,居然成功了。操作如下,很简单:

$sudo vim ~/.bash_profile
           

.bash_profile

文件中,添加如下几行:

alias gcc='gcc-4.7'
alias cc='gcc-4.7'
alias g++='g++-4.7'
alias c++='c++-4.7'
           

上面的

gcc-4.7

是我自己用

brew install gcc47

安装的版本,这个根据你自己的实际情况改动。

之后,

source ~/.bash_profile

,再输入

gcc -v

或者

gcc --version

,显示为 gcc 4.7 了:

将 Mac OS X 系统的 C、C++ 编译器从默认的 Clang 切换到 GCC

可以看见,已经更改成功了。

注:

我用 brew 安装的

brew install gcc47

位置:

/usr/local/Cellar/gcc47/.
           
将 Mac OS X 系统的 C、C++ 编译器从默认的 Clang 切换到 GCC

我用 brew 安装的

brew install ghc

安装的位置:

/usr/local/Cellar/ghc/.
           
将 Mac OS X 系统的 C、C++ 编译器从默认的 Clang 切换到 GCC

PostScript

多说一句:

因为我不用 Mac 做 iOS 开发,所以这个更改对我应该没影响。但是如果你要做 iOS 开发,我想要慎重。总之,我们在 *nix 系统中做什么改变,都应该清楚自己在做什么。那么即使做错了,也能够恢复回去。