OSX - 用通过Homebrew安装的4.9替换gcc版本4.2.1

时间:2015-03-10 18:04:26

标签: c++ macos gcc homebrew

这一直困扰着我一段时间。我正在尝试编译一个巨大的C ++文件(我知道它可以工作,因为它在我工作的Arch Linux计算机上工作正常)。当我在我的Mac上检查我的GCC版本它返回以下

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.1.0
Thread model: posix

我还使用Homebrew with

安装了最新的GCC版本
brew install gcc49

我现在的问题是如何将新安装的GCC版本应用为终端使用的默认版本?

我也知道当你使用自制软件给isntall gcc时,它将它命名为gcc-49,以便包之间没有混淆。

我不知道如何用我安装的4.9版本替换XCode附带的4.2.1版本。

由于

编辑: 切换到我的mac以获得gcc --version

的完整返回语句

编辑2: 我的最终游戏是能够导航到目录并能够输入

make
sudo make install

安装已制作的守护程序。现在,随机包和标准库

返回大量错误

4 个答案:

答案 0 :(得分:52)

默认情况下,homebrew将其安装的软件包的可执行文件(二进制文件)放入/usr/local/bin - 这是本地用户在考虑它时安装二进制文件的一个非常明智的地方 - 与{ {1}}包含属于核心操作系统的标准二进制文件。因此,您的/bin命令应该已将brew安装到gcc-4.9中。现在的问题是如何使用它...你有几种选择。

选项1

如果您只是想在今天和明天编译一两件事,然后可能不再使用编译器,您也可以调用/usr/local/bin安装的gcc,其完整路径如下这样:

homebrew

选项2

如果您要使用/usr/local/bin/gcc-4.9 --version 相当多,那么每次明确键入完整路径会有点令人厌烦,因此您可以将以下内容放入gcc

~/.bash_profile

然后启动一个新的终端,它会知道它需要查看export PATH=/usr/local/bin:$PATH ,这样您就可以轻松输入

/usr/local/bin

选项3

如果您只想使用gcc-4.9 --version 来调用编译器,而不必担心实际版本,您可以执行上面的选项2并另外创建一个这样的符号链接

gcc

只需在命令行输入cd /usr/local/bin ln -s gcc-4.9 gcc ,就可以运行homebrew - 已安装gcc

gcc

注意:

如果您以后想要安装,比如说gcc --version 或某些人,那么您将像以前一样执行gcc-4.13,然后像这样更改符号链接:

brew install

答案 1 :(得分:7)

简单地将〜/ .bash_profile中$ PATH的顺序更新为brew安装版本'export PATH=/usr/local/Cellar/gcc/5.1.0/bin:$PATH'还不足以让我为此切换

更改〜。/ bash_profile(alias gcc='gcc-5')中的别名有效,但可能会令人困惑,即which gcc将返回Clang版本

对我有用的是在brew gcc目录中创建一个符号链接以及更新路径(上面的第1点)

cd /usr/local/Cellar/gcc/5.1.0/bin/gcc
ln -s gcc-5 gcc

现在which gcc会返回正确的版本5.1.0

答案 2 :(得分:1)

OS X未安装GCC(4.2.1或其他)。 Clang是默认的系统编译器,已经有一段时间了。当调用为GCC时,它使用4.2.1中的C ++头。您是否尝试过使用Clang本地编译代码,而不是调用“gcc”(调用Clang)?它具有比GCC仿真模式更多的现代头文件和C ++支持。

答案 3 :(得分:1)

下载gcc二进制文件解压缩并将bin,lib include share和libexec文件复制到你的/ usr目录然后输入gcc --version这是我希望你看到的

gcc --version gcc(GCC)4.9.2 20141029(预发布) 版权所有(C)2014 Free Software Foundation,Inc。 这是免费软件;查看复制条件的来源。没有 保证;甚至不适用于适销性或特定用途的适用性。