这一直困扰着我一段时间。我正在尝试编译一个巨大的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
安装已制作的守护程序。现在,随机包和标准库
返回大量错误答案 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。 这是免费软件;查看复制条件的来源。没有 保证;甚至不适用于适销性或特定用途的适用性。