0.准备升级环境和源码包
CentOS7软件库中的GCC是4.8.5版本,在编译C语言时,在用到C99规范时需要自己指定以c99的规范编译-std=c99
很麻烦。所以考虑升级一下gcc编译器。GCC必须要我们自己编译源码升级。所以需要做好以下准本工作。
1.下载gcc的源码包
https://mirrors.aliyun.com/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz
这个是阿里的镜像,最新版本是10.1.0,这里下载的是 8.2.0版本。
2.搭建编译环境
yum -y install gcc yum -y install gcc-c++ yum -y install bzip2
说明一下:如果没有安装bzip2,会在下载依赖库时报如下错误
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
1.安装
1.1 安装依赖库
gcc依赖了mpfr、gmp、mpc 和is这四个库,现在在gcc的文件中整合了一个shell脚本,我们通过执行脚本文件快速安装依赖。注意:该脚本需要在gcc文件夹内执行。
[root@model gcc-8.0.2]# ./contrib/download_prerequisites
1.2 配置
- 建立编译输出文件。
- 配置命令如下
[root@model gcc-8.0.2]# ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
命令说明:
- –enable-languages=c,c++:只需要支持c/c++编译器即可。
- –disable-multilib:指不需要支持多平台的gcc,如果是64位就仅安装64位的gcc。也可以选择支持。选择支持的话,你要先安装32位的开发库,命令如下:
sudo yum install libgcc.i686 sudo yum install glibc-devel.i686
- 如果不是在所期望安装的目录中,还需要加上--prefix=/usr/gcc8.0.2,后面改成自己的目录。
1.3 编译
[root@model gcc-8.0.2]# make
1.4 安装
[root@model gcc-8.0.2]# make install
1.5 配置永久环境变量
[root@model gcc-8.0.2]# vim /etc/profile
配置系统文件 /etc/profile,在末尾添加语句:
export PATH=/usr/gcc8.2.0/bin:$PATH
再执行source命令,使该系统文件立即生效:
[root@model gcc-8.0.2]# source /etc/profile
2.测试
[root@model gcc-8.0.2]# gcc --version Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/gcc8.2.0/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --prefix=/usr/gcc8.2.0 Thread model: posix gcc version 8.2.0 (GCC) [root@model gcc-8.0.2]#
结束。。。。
3.清除安装包
升级gcc后,压缩包和安装包可以被清除掉:
[root@model home]# ls gcc-8.2.0.tar.gz gcc-8.2.0 [root@model home]# rm -rf gcc-8.2.0*