将 Mac OS X 系统的 C、C++ 编译器从默认的 Clang 切换到 GCC
来源:互联网 发布:西安市行知中学 编辑:程序博客网 时间:2024/05/14 02:13
Preface
Mac 的 OS X 系统的 C语言 编译器用的是 Clang,如下图,在 Terminal 输入 gcc -v
或者 gcc --version
后,显示 C语言 的编译器:
但是很多时候,比如说编译很多工具,如 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 了:
可以看见,已经更改成功了。
注:
我用 brew 安装的 brew install gcc47
位置:
/usr/local/Cellar/gcc47/4.7.4
我用 brew 安装的 brew install ghc
安装的位置:
/usr/local/Cellar/ghc/8.0.1
PostScript
多说一句:
因为我不用 Mac 做 iOS 开发,所以这个更改对我应该没影响。但是如果你要做 iOS 开发,我想要慎重。总之,我们在 *nix 系统中做什么改变,都应该清楚自己在做什么。那么即使做错了,也能够恢复回去。
- 将 Mac OS X 系统的 C、C++ 编译器从默认的 Clang 切换到 GCC
- Mac OS X 上如何切换默认的 Python 版本?
- 如何将你的Sprite Kit游戏从ios移植到Mac OS X平台
- gcc编译器默认支持的c语言标准
- Mac OS X操作系统的编译器
- Mac OS X操作系统的编译器
- 应用程序从Windows到Mac OS x的迁移
- 应用程序从Windows到Mac OS x的迁移
- 应用程序从Windows到Mac OS x的迁移
- 应用程序从Windows到Mac OS x的迁移
- Clang 与 GCC 编译器的简单比较
- mac OS X 10.10更新gcc 4.9.1后默认无法编译连接的问题
- Linux系统上的C/C++编译器gcc/egcs详解
- Mac OS X系统上使用Eclipse开发环境C访问Mysql数据库的设置
- GCC的默认C标准
- mac os x 将C文件编译成.so库
- 免费升级Mac OS X 的办法 ( 本人已验证可以从Mac OS X 10.6.8 升级到 Mac OS X 10.8 )
- 修改mac默认的gcc到自己安装的gcc
- Java并发编程(8):多线程环境中安全使用集合API(含代码)
- CodeForces 615C
- Java并发编程(9):死锁(含代码)
- Java编程入门(2.1):基础Java应用程序
- hdu 1217
- 将 Mac OS X 系统的 C、C++ 编译器从默认的 Clang 切换到 GCC
- Intent简介
- iOS面试题总结(一)
- Square Numbers(Square Numbers)
- 谓词判断字符串 身份证、邮箱手机号、特殊字符等 swift版
- Openjudge 百练 03:复杂的整数划分问题
- ffmpeg 在cron中的问题
- tornado 初识
- 关于.getClass()和.class的区别