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

这已经困扰我一段时间了。我正在尝试编译一个巨大的 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 安装了最新的 GCC 版本

brew install gcc49

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

我还知道,当您使用 Homebrew 软件安装 gcc 时,它会将其命名为 gcc-49,这样包之间就不会混淆。

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

谢谢

编辑: 切换到我的mac获取gcc --version的完整return语句

编辑 2: 我在这里的最终目的是能够导航到目录并能够输入

make
sudo make install

安装已创建的守护程序。现在,随机包和标准库会返回大量错误

最佳答案

默认情况下,homebrew 将其安装的软件包的可执行文件(二进制文件)放置在 /usr/local/bin 中 - 对于由考虑到本地用户 - 与包含属于核心操作系统的标准二进制文件的 /bin 相比。因此,您的 brew 命令应该已将 gcc-4.9 安装到 /usr/local/bin 中。现在的问题是如何使用它……您有多种选择。

选项 1

如果你今天和明天只想编译一两件事,然后可能不再使用编译器,你不妨调用 homebrew 安装的 gcc > 完整路径如下:

/usr/local/bin/gcc-4.9 --version

选项 2

如果您要经常使用 gcc,每次显式输入完整路径会有点烦人,因此您可以将以下内容放入您的 ~/.bash_profile

export PATH=/usr/local/bin:$PATH

然后启动一个新终端,它会知道它需要在 /usr/local/bin 中查找,因此您只需键入即可逃脱

gcc-4.9 --version

选项 3

如果你只是想使用gcc来调用编译器,而不用担心实际版本,你可以做上面的选项2,另外创建一个像这样的符号链接(symbolic link)

cd /usr/local/bin
ln -s  gcc-4.9  gcc

这将允许您通过简单地在命令行键入 gcc 来运行安装了 homebrewgcc,就像这样

gcc --version

注意:

如果你以后想安装,比如 gcc-4.13 或类似的,你可以像以前一样执行 brew install,然后像这样更改符号链接(symbolic link):

cd /usr/local/bin
rm gcc               # remove old link from gcc to gcc-4.9
ln -s gcc-4.13 gcc   # make new link from gcc to gcc-4.13

请注意,如果您实际使用的是 C++ 而不是 C,则需要将上述内容调整为 g++ 代替 gcc.

https://stackoverflow.com/questions/28970935/

相关文章:

c++ - 我收到错误 "invalid use of incomplete type ' 类映射'

c++ - std::map 如何提供常量 size() 操作?

c++ - VS2012 在 64 位目标中 vector 的性能不佳

c++ - std::pair 的顺序是否明确?

c++ - 为什么 std::fstream 类不采用 std::string?

c++ - 如何在编译时检查结构的大小?

c++ - 我不明白这个 C/C++ 笑话

C++ 异常 - 将 c-string 作为异常抛出是不是很糟糕?

c++ - 访问另一个子类中基类的 protected 成员

c++ - C 和 C++ 中的 1LL 或 2LL 是什么?