CENTOS7 升级gcc版本

 升级gcc版本

CentOS下升级gcc版本有两个途径,一个是添加其他源进行自动升级,一个是手动编译升级,这里先顺便讲下自动升级的两个办法:

a. 添加Fedora源

在 /etc/yum.repos.d 目录中添加文件 FedoraRepo.repo ,并输入以下内容:

[warning:fedora]
name=fedora
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-23&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=https://getfedora.org/static/34EC9CBA.txt

然后使用 yum install gcc gcc-c++ -y 进行安装,注意,如果你要用这种方法安装gcc,那在第1步就干脆不要安装gcc和gcc-c++包了

b. 使用Devtoolset-4升级,详细方法见这里

yum install centos-release-scl

yum install devtoolset-4-gcc*

scl enable devtoolset-4 bash

which gcc

gcc --version

好了,以上方法我们都不选,因为我最终部署成功用的是手动升级的方法(至于为什么不选择自动更新,还有一个很重要的原因,那就是CentOS存在的逻辑,很多人选用CentOS而不是Ubuntu作为服务器操作系统,主要原因是什么呢?)

好了,我们先下载gcc5.4.0,下载地址 http://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz

cd /usr/local/src

wget -O gcc-5.4.0.tar.gz http://101.96.10.61/ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz

tar -xzvf gcc-5.4.0.tar.gz

cd gcc-5.4.0

#下载依赖项
./contrib/download_prerequisites

#为了在长期的编译过程中Linux不黑屏,临时关闭屏保

setterm -blank 0

mkdir build && cd build

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

#4核cpu就是j4,在vmware12下有用
make -j4

#机器不好大概这里要花3小时

make install

 先查看下GLIBCXX的版本信息,不出意外的话,应该最高就到GLIBCXX_3.4.19,我们要用最新的版本替换原来的版本

搜索libstdc++.so.6*,看看都有什么结果,我们会发现在/usr/lib64里面有6.0.19,这是我们使用yum安装的,/usr/local/lib64/libstdc++.so.6.0.21是我们刚才编译安装的,需要用最新的替换旧版本的。

首先将/usr/lib64下面的libstdc++.so.6*删除掉 

rm /usr/lib64/libstdc++.so.6* -f (实际删除两个文件),

然后我们在/usr/lib64下为libstdc++.so.6.0.21建立链接

ln -s /usr/local/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6 ,

顺便再将/usr/local/lib64下面一个看着碍眼的文件删除 

rm /usr/local/lib64/libstdc++.so.6.0.21-gdb.py -f ,

(如果不删除这个文件,则在ldconfig创建动态链接库文件缓存时会报一个莫名其妙的错误)

最后在/etc/ld.so.conf中加入/usr/local/lib64,为动态共享库指定搜索路径 vim /etc/ld.so.conf 

然后创建缓存

ldconfig

再次检查GLIBCXX版本 strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX | more ,这时就已经包含GLIBCXX_3.4.21了

检查下gcc和g++的版本,注意,如果检查到的版本不是5.4.0,而是4.8.5(安装前的版本),则仔细想想有没有按照本文步骤来,如果确认是没有出入,那么就重启机器吧 reboot ,启动好后再次检查,应该就可以看到正确结果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值