CentOS gcc升级4.8步骤

最近需要用到c++11,所以需要把gcc从4.4.7升级到4.8.1。

首先我们需要下载gcc的源码

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.1/gcc-4.8.1.tar.gz

然后解压进入目录

1
2
tar -xvzf gcc-4.8.1.tar.gz -C /opt/gcc
cd /opt/gcc/gcc-4.8.1

执行如下命令:

./contrib/download_prerequisites

然后在gcc-4.8.1平级目录下创建编译目录

1
2
cd ..
mkdir build_gcc_4.8.1

接下来就是执行编译了

1
2
3
4
cd build_gcc_4.8.1
../gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j4
make install

如果在执行make 和 make install的时候没有遇到error,那么恭喜你,已经完成了gcc-4.8.1安装了。

默认安装路径为:

/usr/local/bin

接下来就是升级版本了。

1
2
/usr/sbin/update-alternatives --install  /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc-4.8.1 40
/usr/sbin/update-alternatives --install /usr/bin/g++ g++ /usr/local/bin/g++ 40

再次查看你服务器的gcc版本可以看到已经更新为4.8.1。

但其实在make 和 make install的过程中,多多少少还会碰到一些莫名其妙的问题。

我曾经出现的问题就是在make的时候出错了,让我怀疑我下载的安装包是不是有问题。

后来执行 make clean 并删除所有 build的文件后,重新来了一遍,竟然成功了。

经过总结第一次失败和第二次成功的唯一区别是:

第二次gcc-4.8.1解压是放到/opt/gcc/目录下了,后续的build_gcc-4.8.1也是放到/opt/gcc目录下。

而第一次时,解压源码gcc-4.8.1和后续的build_gcc-4.8.1都是放到/opt/根目录下。