关于 GCC 在 CentOS 下通过 yum 安装默认版本号,CentOS 5 是 4.1.2;CentOS 6 是 4.4.7;CentOS 7 是 4.8.3。
很多时候在编译安装软件都需要高版本的 GCC,否则就会报错。
那么如何升级 GCC 的版本呢?

首先要确认升级到的 GCC 版本号。
目前 GCC 的最新版已经到了 5.2,而 CentOS 7 则依然使用其 4.8,所以基于兼容性考虑,我选择升级到 4.8.5。
GCC 官网:https://gcc.gnu.org


下面开始一步一步来编译安装 GCC 4.8.5,需要注意的是,在编译安装 GCC 之前,系统里必须先要通过 yum 安装老版本的 GCC 和依赖库。
如果是在 x86_64 系统下编译的话,还需要安装 libgcc.i686 glibc-devel.i686 才行。


yum install -y gcc texinfo-tex flex zip libgcc.i686 glibc-devel.i686



注意:编译安装 GCC 内存不小于 1GB,Swap 不小于 1GB,硬盘最低不小于 10GB,否则极有可能会中途报错退出。
编译安装完后,目录 gcc-4.8.5 将会有 5GB 之多。


1、下载源码


wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz


2、下载依赖包
编译安装 GCC 需要依赖 mpc,mpfr,gmp包。好在 GCC 源码里自带脚本可以轻松下载依赖包。

tar zxf gcc-4.8.5.tar.gz
cd gcc-4.8.5
./contrib/download_prerequisites

编译和安装

# cd gcc-4.8.1
 #./gcc-4.8.1/configure--prefix=/usr/local/gcc-4.8.1 --enable-languages=c,c+

prefix=/usr/local/gcc-4.8.1表示配置安装的路径,如果不指定安装路径,执行文件会默认放在/usr/local/bin下,这样做是为了方便维护,当需要卸载时,直接删除该目录即可。
enable-languages表示安装语言,在这里表示只安装c和c++

编译
准备工作完成后,就可以编译了
# make
此过程大概2小时左右哦,如果中途报错,提示fatal error:gnu/stubs-32,No such file or directory.如下图示:

运行下面命令,然后重新编译
# yum -y install glibc-devel.i686 --setopt=protected_multilib=false

# make


参考资料:

CentOS 6.7 下升级 g++
https://allen-kevin.github.io/2016/09/28/CentOS%206.7%E4%B8%8B%E5%8D%87%E7%BA%A7g++/ 解决libc.so.6: version `GLIBC_2.14' not found问题

安装gcc4.8.5
https://teddysun.com/432.html