Ubuntu16.04 手动升级gcc版本
1、首先下载压缩包
Index of /gnu/gcc/gcc-7.5.0http://ftp.gnu.org/gnu/gcc/gcc-7.5.0/2、具体步骤为:
具体安装命令如下:
#将所有安装包上传到Linux环境下,解压缩处理
tar -xvf gcc-7.5.0.tar.gz
cd gcc-7.5.0
#下面这一步大部分国内用户都会失败,由于网络等问题,所需的资源包下载不了,下面的命令本质上来说做的操作就是下载所需的四个资源环境包,分别为:gmp-6.1.0.tar.bz2、mpc-1.0.3.tar.gz、mpfr-3.1.4.tar.bz2、isl-0.16.1.tar.bz2。这里我采用手动下载的方式,提前下载好所需资源包,之后上传到该目录下即可。
./contrib/download_prerequisites
cd ..
#建立编译输出目录
mkdir gcc-build-7.5.0
#进入下面目录,执行命令,生成Makefile文件
cd gcc-build-7.5.0
#configure的最后一个参数是关闭32位库,只编译64位库,我的电脑是64位的。如果想要同时编译32位和64位,可以使用-enable-multilib
../gcc-7.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
#执行命令进行编译,此处利用4个job,需编译时约40分钟,此值不宜设置过高
make -j4
#安装
make install
#成功执行完成之后,可以查看gcc和g++的版本
gcc -v
g++ -v
#如果想要在不同版本的gcc之间进行切换,可以使用下面的命令
sudo update-alternatives --config gcc
3、需要特别留意的是:执行./contrib/download_prerequisites时,若不能翻墙,或导致失败,或者网络可行,下载后的数据校验错误需要自己单独下载相关的压缩文件,并放在gcc-7.5.0解压后的根目录下。具体为如下文件
gmp-6.1.0.tar.bz2
mpc-1.0.3.tar.gz
mpfr-3.1.4.tar.bz2
isl-0.16.1.tar.bz2