升级gcc版本

一般linux操作系统默认的gcc版本都比较低,例如Centos7系统默认的gcc版本为4.8.5.gcc是从4.7版本开始支持C++11的,4.8版本对C++11新特性的编译支持还不够完善,因此如果需要更好的体验C++11以及以上版本你的新特性,需要升级gcc到一个较高的版本。

本文以升级到10.1.0为例

一、查看确认gcc原来的版本

gcc --version

下载gcc新版本地址为

Index of /gnu/gcc

二、下载gcc包并解压

wget https://ftp.gnu.org/gnu/gcc/gcc-10.1.0/gcc-10.1.0.tar.gz
tar -xzvf /gcc-10.1.0.tar.gz -C /usr/local/    #将包解压到/usr/local/下
cd /usr/local/

三、下载gcc需要的依赖

3.1查看gcc需要的依赖

cd gcc-10.1.0/
vim contrib/download_prerequisites

依赖下载的地址

Index of /pub/gcc/infrastructure

3.2 在服务器上wget下载好4个依赖包后,解压到目录gcc-10.1.0

tar -jvxf gmp-6.1.0.tar.bz2 -C /usr/local/gcc-10.1.0/
tar -jvxf isl-0.18.tar.bz2 -C /usr/local/gcc-10.1.0/
tar -jvxf mpfr-3.1.4.tar.bz2 -C /usr/local/gcc-10.1.0/
tar -zvxf mpc-1.0.3.tar.gz -C /usr/local/gcc-10.1.0/

3.3 在目录gcc-10.1.0下建立软连接

cd /usr/local/gcc-10.1.0
ln -sf gmp-6.1.0 gmp
ln -sf isl-0.18 isl
ln -sf mpc-1.0.3 mpc
ln -sf mpfr-3.1.4 mpfr
#查看建立的软连接
ll -h

四、编译并安装gcc

在目录gcc-10.1.0下依次执行下面两个命令

mkdir build && cd build
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib 

如果上面的命令执行正确,可以看到生成的makefile文件,上述命令执行完成后,build下面可以看到下面几个文件

config.log config.status Makefile serdep.tmp

注意:在执行上面第二个命令configure命令时,也可以通过prefix参数微信版本gcc指定安装目录(如果没有指定安装默认为/usr/local/,本文没有指定)

../configure --prefix=/usr/local/gcc-10.1.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib

然后在build目录下面执行下面命令。编译安装gcc

make -j4 && make install

该过程比较漫长,大约需要2小时以上,需要耐心等待,如果编译安装过程没有报错,最后一段打印大概是这样:

然后执行gcc --version就已经显示为10.1.0

五、更新gcc

如果你在Linux命令行中输入:gcc --version,发现现实的还是原来的版本,这是因为gcc还没有更新,执行的还是原来的命令

原来的命令位于目录/usr/bin/gcc等目录下面,为了不覆盖原来的命令,将原来的相关内容进行备份处理,执行如下命令

mv /usr/bin/gcc /usr/bin/gcc485
mv /usr/bin/g++ /usr/bin/g++485
mv /usr/bin/c++ /usr/bin/c++485
mv /usr/bin/cc /usr/bin/cc485
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak

安装的gcc新版本位于/usr/local/bin目录下面,需要为新版本创建软连接

ln -s /usr/local/bin/gcc /usr/bin/gcc
ln -s /usr/local/bin/g++ /usr/bin/g++
ln -s /usr/local/bin/c++ /usr/bin/c++
ln -s /usr/local/bin/gcc /usr/bin/cc
ln -s /usr/local/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6

输入gcc -v 查看版本

可以看到版本已经变成了安装的最新版本10.1.0,说明安装成功。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值