CentOS升级GCC

CentOS升级GCC


阿里云主机的自带gcc版本都比较低,在编译一些稍微比较比较新的库时,会报出如下错误:

无法识别的命令行选项“-std=c++11

查找之后得知需要升级gcc至4.8版本以上,遂决定手动升级gcc。
查看当前版本:

1
2
3
4
5
6
[root@iZuf6h7yd9haonvv70i74oZ ~]# gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18)
Copyright © 2010 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
[root@iZuf6h7yd9haonvv70i74oZ ~]#

下载gcc

镜像下载地址:gcc.skazkaforyou.com
或者 gcc官网
我选择了5.2版本的下载:

1
wget http://gcc.skazkaforyou.com/releases/gcc-5.2.0/gcc-5.2.0.tar.bz2

下载文件大小在100M左右,如果遇到下载慢的,可以尝试更换其他下载镜像地址。

解压文件

1
tar -xf gcc-5.2.0.tar.bz2

下载gcc所依赖的文件和库

1
2
cd gcc-5.2.0
./contrib/download_prerequisites

编译安装GCC

1
2
3
4
mkdir build_temp
cd build_temp
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make

等待大概一个小时以后,make完成,执行安装命令。

1
make install

查看安装的gcc,默认安装目录在usr/local/bin

1
2
3
4
5
6
7
8
9
10
[root@iZuf6h7yd9haonvv70i74oZ build_temp]# ls /usr/local/bin | grep gcc
gcc
gcc-ar
gcc-nm
gcc-ranlib
i686-pc-linux-gnu-gcc
i686-pc-linux-gnu-gcc-5.2.0
i686-pc-linux-gnu-gcc-ar
i686-pc-linux-gnu-gcc-nm
i686-pc-linux-gnu-gcc-ranlib

执行升级命令

1
2
3
/usr/sbin/update-alternatives --install  /usr/bin/gcc gcc /usr/local/bin/i686-pc-linux-gnu-gcc-5.2.0 52

/usr/sbin/update-alternatives --install /usr/bin/g++ g++ /usr/local/bin/g++ 52

检查gcc版本

重新连接上服务器,打开终端,执行如下命令:

1
2
3
4
5
6
7
8
9
10
11
12
[root@iZuf6h7yd9haonvv70i74oZ ~]# gcc --version
gcc (GCC) 5.2.0
Copyright © 2015 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。

[root@iZuf6h7yd9haonvv70i74oZ ~]# g++ --version
g++ (GCC) 5.2.0
Copyright © 2015 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。
[root@iZuf6h7yd9haonvv70i74oZ ~]#
0%