Centos升级gcc

对于Centos 6.x的系统,默认根据yum源安装的gcc都是4.4.7版本的,即使换成阿里的yum源也是4.4.7版本的。这对于大多数软件是够用的,但是个别软件需要C++ 11的特性,而gcc从4.7版本才加入C++ 11特性,要解决这个问题一般有两种方法:

方法一:手动下载高版本的gcc的源码进行编译安装,这还需要先安装gcc的依赖软件包,比较繁琐

步骤:
(1)下载gcc-6.4.0:https://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.gz

如果直接安装,会提示Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+,所以要下载和安装GMP、MPFR和MPC这些依赖库,还要下载isl依赖库:
gmp-6.1.2: https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
mpfr-4.0.1: https://www.mpfr.org/mpfr-current/mpfr-4.0.1.tar.gz
mpc-1.1.0: https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
isl-0.20: http://isl.gforge.inria.fr/isl-0.20.tar.gz

(3)安装GMP、MPFR和MPC有顺序要求,GMP是基础、MPC依赖MPFR,最后安装isl。
在各个依赖包解压后的文件夹下分别执行

./configure
make
sudo make install

进行编译安装即可

(4)依赖库安装完成后最后编译安装gcc

./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make
sudo make install

实际编译安装时按照这种方法搞了好久,到最后在执行sudo make install命令进行安装时会报错,网上也没找到相关原因,后来就采用了下述的方法二升级gcc成功!

方法二:使用devtoolset升级gcc版本,这个方法相对方法一比较快速

1.对于有网的电脑
按下述步骤操作:
1)先执行:

sudo wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
sudo yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

也可以下载devtoolset-3或者devtoolset-4,视情况下载安装。
devtoolset目前有4个版本:devtoolset-1.1 devtoolset-2 devtoolset-3 devtoolset-4,
以上devtoolset的4个版本分别对应gcc的版本为4.7、4.8、4.9、5.2

上述命令表示在/etc/yum.repos.d/下先新增一个devtools-2的yum网络源,然后再安装devtoolset-2的三个软件包,注意到安装这3个软件包时会还会下载安装另外8个依赖包。
2)上述软件包安装成功后就安装了gcc 4.8的版本。但是默认是没有开启的,需要执行下面命令以开启devtoolset-2:

. /opt/rh/devtoolset-2/enable

但是这样只会对当前shell会话有效,要想一直有效,可以在~/.bashrc文件中添加:

. /opt/rh/devtoolset-2/enable

这样每次shell会话都会开启devtoolset-2了。
开启了devtoolset-2之后就可以正常完成make和make install了。

2.对于没有网的电脑
按下述步骤操作:
1)先在有网的电脑上执行:

sudo wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
sudo yum install  --downloadonly --downloaddir=/home/y/Desktop devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

把上述下载下来的软件包都移动到新建的devtoolsetAndDependency文件夹下,然后将该文件夹拷贝到没有网的电脑,做成yum本地源。如何制作yum本地源请参考:Centos 制作本地源
2)然后执行:

sudo yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

就会从本地yum源安装devtoolset-2了。

3)安装devtoolset-2完成后,如何开启devtoolset-2,请参照上面的 1.对于有网的电脑 所写的开启devtoolset-2的操作进行。

参考:
升级 GCC 支持C++11
CentOS 6.9升级GCC至6.4.0版本
CentOS 6下gcc升级的操作记录(由默认的4.4.7升级到6.4.0版本)

安装devtoolset来满足gcc不同版本的要求

猜你喜欢

转载自blog.csdn.net/yzpbright/article/details/81571645