OSX - 将 gcc 版本 4.2.1 替换为通过 Homebrew 安装的 4.9
OSX - replace gcc version 4.2.1 with 4.9 installed via Homebrew
这个问题已经困扰我一段时间了。我正在尝试编译一个巨大的 C++ 文件(我知道它可以正常工作,因为它在我工作的 Arch Linux 计算机上运行良好)。当我在我的 mac 上检查我的 GCC 版本时,它 return 如下
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
安装已经制作好的守护进程。现在 return 随机包和标准库有大量错误
OS X 没有安装 GCC(4.2.1 或其他)。 Clang 是默认的系统编译器,已经有一段时间了。当作为 GCC 调用时,它使用 4.2.1 中的 C++ headers。您是否尝试过使用 Clang 本机编译代码,而不是调用 "gcc"(调用 Clang)?它具有比 GCC 仿真模式更现代的 headers 和 C++ 支持。
默认情况下,homebrew
将其安装的软件包的可执行文件(二进制文件)放入 /usr/local/bin
- 考虑到本地用户安装的二进制文件,这是一个非常明智的地方 - 比较到 /bin
,其中包含属于核心 OS 的标准化二进制文件。因此,您的 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 并另外创建一个符号 link 像这样
cd /usr/local/bin
ln -s gcc-4.9 gcc
这样您就可以 运行 homebrew
安装的 gcc
,只需在命令行中键入 gcc
,就像这样
gcc --version
注:
如果你以后想安装,比如 gcc-4.13
或类似的,你会像以前一样安装 brew install
,然后像这样更改符号 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
.
下载 gcc 二进制文件解压并将 bin、lib include share 和 libexec 文件复制到您的 /usr 目录,然后键入 gcc --version 这是我希望您看到的内容
gcc --version
gcc (GCC) 4.9.2 20141029(预发布)
版权所有 (C) 2014 Free Software Foundation, Inc.
这是免费软件;有关复制条件,请参阅来源。没有
保修单;甚至不是针对特定用途的适销性或适用性。
简单地将 ~/.bash_profile 中 $PATH 的顺序更新为 brew 安装版本 'export PATH=/usr/local/Cellar/gcc/5.1.0/bin:$PATH'
不足以为我进行切换
更改 ~./bash_profile (alias gcc='gcc-5'
) 中的别名有效,但可能会造成混淆,即 which gcc
将 return Clang 版本
对我有用的是在 brew gcc 目录中创建一个符号 link 并更新路径(上面的第 1 点)
cd /usr/local/Cellar/gcc/5.1.0/bin/gcc
ln -s gcc-5 gcc
现在 which gcc
return正确的版本是 5.1.0
这个问题已经困扰我一段时间了。我正在尝试编译一个巨大的 C++ 文件(我知道它可以正常工作,因为它在我工作的 Arch Linux 计算机上运行良好)。当我在我的 mac 上检查我的 GCC 版本时,它 return 如下
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
安装已经制作好的守护进程。现在 return 随机包和标准库有大量错误
OS X 没有安装 GCC(4.2.1 或其他)。 Clang 是默认的系统编译器,已经有一段时间了。当作为 GCC 调用时,它使用 4.2.1 中的 C++ headers。您是否尝试过使用 Clang 本机编译代码,而不是调用 "gcc"(调用 Clang)?它具有比 GCC 仿真模式更现代的 headers 和 C++ 支持。
默认情况下,homebrew
将其安装的软件包的可执行文件(二进制文件)放入 /usr/local/bin
- 考虑到本地用户安装的二进制文件,这是一个非常明智的地方 - 比较到 /bin
,其中包含属于核心 OS 的标准化二进制文件。因此,您的 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 并另外创建一个符号 link 像这样
cd /usr/local/bin
ln -s gcc-4.9 gcc
这样您就可以 运行 homebrew
安装的 gcc
,只需在命令行中键入 gcc
,就像这样
gcc --version
注:
如果你以后想安装,比如 gcc-4.13
或类似的,你会像以前一样安装 brew install
,然后像这样更改符号 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
.
下载 gcc 二进制文件解压并将 bin、lib include share 和 libexec 文件复制到您的 /usr 目录,然后键入 gcc --version 这是我希望您看到的内容
gcc --version gcc (GCC) 4.9.2 20141029(预发布) 版权所有 (C) 2014 Free Software Foundation, Inc. 这是免费软件;有关复制条件,请参阅来源。没有 保修单;甚至不是针对特定用途的适销性或适用性。
简单地将 ~/.bash_profile 中 $PATH 的顺序更新为 brew 安装版本 'export PATH=/usr/local/Cellar/gcc/5.1.0/bin:$PATH'
不足以为我进行切换
更改 ~./bash_profile (alias gcc='gcc-5'
) 中的别名有效,但可能会造成混淆,即 which gcc
将 return Clang 版本
对我有用的是在 brew gcc 目录中创建一个符号 link 并更新路径(上面的第 1 点)
cd /usr/local/Cellar/gcc/5.1.0/bin/gcc
ln -s gcc-5 gcc
现在 which gcc
return正确的版本是 5.1.0