在OSX Yosemite上将cc设置为gcc而不是clang

时间:2015-01-06 20:57:05

标签: c macos gcc clang osx-yosemite

我一直试图让Mac OSX Yosemite在调用cc时使用gcc而不是clang,但不管我做什么,它都拒绝玩。我已经尝试过更改我的bash_profile / bashrc甚至重新链接符号链接,但无济于事 - 每次调用“cc”时,它仍然会运行。我试图强迫它成为gcc(不,只是调用gcc不是一个选项)。

我之前曾问过类似的问题(Make gcc default c compiler on Yosemite/disable clang)。

2 个答案:

答案 0 :(得分:10)

OS X和Xcode都没有真正的GCC。为了与假定编译器被称为" gcc"的脚本兼容,它具有该名称的可执行文件,但它们都是Clang的前端。没有任何符号链接,设置环境变量或设置别名将允许这些可执行文件运行真正的GCC。

如果您想要GCC,则需要安装它。您可以使用其中一个软件包管理器来完成此操作,例如MacPorts(我熟悉的那个)。我确定你也可以使用Homebrew。

您不应修改/ usr / bin中的任何内容。如果您已经这样做,则应尽可能恢复已更改的内容。

行为良好的包管理器也不会修改该目录。它们应安装到单独的目录,例如/ opt / local / bin,/ usr / local / bin等。在这种情况下,您需要修改PATH以将这些目录放在/ usr / bin之前。

答案 1 :(得分:5)

你不应该这样做。许多工具依赖于安装二进制文件来指出它们应该是什么。另一种选择是将环境变量CC设置为gcc,并使用$CC ...而不是cc ...调用编译;通过configure(autotools)或cmake构建软件包时,也会获取此环境变量。

这也是与MacPorts版本的gcc兼容的方法(比如更新的gcc-4.9.2),可以设置为:sudo port select --set gcc mp-gcc49