centos7升级gcc

一:下载源代码

gcc -v
gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
升级到7.4.0,(gcc4.*版本不支持很多clang的高级用法)
下载安装包
wget http://ftp.gnu.org/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz
tar -vxf gcc-7.4.0.tar.gz
查看依赖文件gcc-7.4.0/contrib/download_prerequisites
cat gcc-7.4.0/contrib/download_prerequisites

program='download_prerequisites'
version='(unversioned)'

# MAINTAINERS: If you update the package versions below, please
# remember to also update the files `contrib/prerequisites.sha512` and
# `contrib/prerequisites.md5` with the new checksums.

gmp='gmp-6.1.0.tar.bz2'
mpfr='mpfr-3.1.4.tar.bz2'
mpc='mpc-1.0.3.tar.gz'
isl='isl-0.16.1.tar.bz2'

二:下载依赖文件

./contrib/download_prerequisites  ##过程有点久

有一个WARNING:无法验证可能损坏的文件gmp-6.1.0.tar.bz2的完整性

gmp-6.1.0.tar.bz2: FAILED
sha512sum: WARNING: 1 computed checksum did NOT match
error: Cannot verify integrity of possibly corrupted file gmp-6.1.0.tar.bz2

查看这4个包都下载了,如果不行的话只能手动下载报错的包解压到该目录下
在这里插入图片描述
删了重新下载依赖:无法从gmp-6.1.0.tar.bz2中提取软件包

[root@nc-01 gcc-7.4.0]# ./contrib/download_prerequisites 
2019-10-18 08:11:06 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840] -> "./gmp-6.1.0.tar.bz2" [1]
2019-10-18 08:13:07 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 [1279284] -> "./mpfr-3.1.4.tar.bz2" [1]
2019-10-18 08:14:17 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925] -> "./mpc-1.0.3.tar.gz" [1]
2019-10-18 08:17:01 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2 [1626446] -> "./isl-0.16.1.tar.bz2" [1]
gmp-6.1.0.tar.bz2: OK
mpfr-3.1.4.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.16.1.tar.bz2: OK
tar (child): lbzip2: Cannot exec: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
error: Cannot extract package from gmp-6.1.0.tar.bz2

这个问题其实就是因为tar解包的时候没有解成功。这是因为机器上没有安装bzip2,使用如下命令安装bzip2:

 yum -y install bzip2

依赖的安装包都下好了,重新运行下解压久ok了

[root@nc-01 gcc-7.4.0]# ./contrib/download_prerequisites 
gmp-6.1.0.tar.bz2: OK
mpfr-3.1.4.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.16.1.tar.bz2: OK
All prerequisites downloaded successfully.

三:配置

创建预编译目录

mkdir  build  &&  cd build

编译

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

编译完成后

[root@nc-01 build]# ls
config.log  config.status  Makefile  serdep.tmp

四:安装

[root@nc-01 build]# make  (多任务有可能会编译报错,老老实实的make 吧)
configure: error: in `/root/GCC7.4.0_install/gcc-7.4.0/build/gcc':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.
make[2]: *** [configure-stage1-gcc] Error 1
make[2]: Leaving directory `/root/GCC7.4.0_install/gcc-7.4.0/build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/root/GCC7.4.0_install/gcc-7.4.0/build'
make: *** [all] Error 2

configure: error: in `/root/GCC7.4.0_install/gcc-7.4.0/build/gcc’:
configure: error: C++ preprocessor “/lib/cpp” fails sanity check

[root@nc-01 build]# yum  install  gcc-c++

然后重新make下就ok了(过程比较久) && make install

[root@nc-01 ~]# gcc  -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/7.4.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure --prefix=/usr --enable-multilib --enable-languages=c,c++ -disable-multilib
Thread model: posix
gcc version 7.4.0 (GCC) 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值