我从自制软件下载了 gcc v4.8,以便可以将 gcc 和 g++ 更新到 4.8,而不是使用苹果提供的 4.2.1。
我使用以下命令安装了 gcc48:
$brew install gcc48 --enable-all-languages
这安装了所有必需的依赖项,当我运行时,
$gcc-4.8 -v
我得到:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc48/4.8.1/gcc/libexec/gcc/x86_64-apple-darwin12.4.0/4.8.1/lto-wrapper
Target: x86_64-apple-darwin12.4.0
Configured with: ../configure --build=x86_64-apple-darwin12.4.0 --prefix=/usr/local/Cellar/gcc48/4.8.1/gcc --datarootdir=/usr/local/Cellar/gcc48/4.8.1/share --bindir=/usr/local/Cellar/gcc48/4.8.1/bin --enable-languages=c,c++,fortran,java,objc,obj-c++ --program-suffix=-4.8 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-cloog=/usr/local/opt/cloog --with-isl=/usr/local/opt/isl --with-system-zlib --enable-libstdcxx-time=yes --enable-stage1-checking --enable-checking=release --enable-plugin --enable-lto --disable-werror --disable-nls --with-ecj-jar=/usr/local/opt/ecj/share/java/ecj.jar --disable-multilib
Thread model: posix
gcc version 4.8.1 (GCC)
我使用创建了符号链接
$ln -s gcc-4.8 gcc
在 /usr/local/bin 文件夹中,它创建了符号链接和
$gcc -v
给我与以下相同的输出:
$gcc-4.8 -v
我尝试用 g++-4.8 做同样的事情,并使用创建了一个符号链接,
$ln -s g++-4.8 g++
并且没有错误。但是现在,当我这样做时
$g++ -v
我得到:
g++-4.8: error trying to exec '/usr/local/bin/../Cellar/gcc48/4.8.1/bin/i686-apple-darwin11-llvm-g++-4.2': execvp: No such file or directory
这是我的 $PATH:
/usr/local/bin:/Library/Frameworks/Python.framework/Versions/3.3/bin:/Developer/Intel/ispc-v1.3.0-osx:/Developer/NVIDIA/CUDA-5.0/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/texbin
它似乎出于某种原因正在寻找 4.2,我不知道为什么!它对 gcc 工作得非常好,只是不确定 g++ 有什么问题?
which g++
返回
/usr/local/bin/g++