一般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新版本地址为

二、下载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,说明安装成功。
1万+

被折叠的 条评论
为什么被折叠?



