一、前言
本文介绍在CentOS7系统下使用源码软件包编译升级GCC版本的相关操作步骤。
CentOS7默认安装的gcc版本是4.8,gcc 4.8最主要的一个特性就是全面支持C++11,如果不清楚什么用的也没关系,简单说一些C++11标准的程序都需要gcc 4.8以上版本的gcc编译器编译。很多工具依赖的是更高版本的gcc,比如编译MySQL 8.0(8.0.16以上版本是C++14标准,需gcc 5.3以上版本)、Redis 6.0.x、GRPC等。
手动编译升级gcc往往耗时长,而且不一定能成功,CentOS系统下可使用一个第三方库SCL(软件选集)的 devtoolset 快速切换gcc版本。但目前第三方库SCL的devtoolset-6版本已经结束支持,只能通过源码编译安装升级gcc 6.x。且第三方库SCL中目前(2021年5月)还没有gcc 10.x以上版本的YUM源,若要升级为10.x以上的版本也需要通过源码编译安装。
官网:https://gcc.gnu.org/
源码包下载:
http://ftp.gnu.org/gnu/gcc
二、查看系统gcc版本
- gcc -v
三、升级到6.5.0版本
## 下载解压
- cd /data/tools
- wget http://ftp.gnu.org/gnu/gcc/gcc-6.5.0/gcc-6.5.0.tar.gz
- tar xf gcc-6.5.0.tar.gz
## 下载依赖文件
- cd gcc-6.5.0/
- ./contrib/download_prerequisites
## 新建gcc-bulid-6.5.0目录(与gcc-6.5.0同级)并进入该目录中(目录名自定义)
- mkdir -p /data/tools/gcc-bulid-6.5.0
- cd /data/tools/gcc-bulid-6.5.0
## 生成makefile文件
- ../gcc-6.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
## 编译安装(注:编译时间较长,请耐心等待)
- make -j 2
- //make -j 指定的是CPU内核数量,加快编译速度(根据实际情况修改)
- make install
## 查看gcc版本,验证升级是否成功
- gcc -v
四、升级到11.1.0版本
## 下载解压
- cd /data/tools
- wget http://ftp.gnu.org/gnu/gcc/gcc-11.1.0/gcc-11.1.0.tar.gz
- tar xf gcc-11.1.0.tar.gz
## 下载依赖文件
- cd gcc-11.1.0/
- ./contrib/download_prerequisites
## 新建gcc-bulid-11.1.0目录(与gcc-11.1.0同级)并进入该目录中(目录名自定义)
- mkdir -p /data/tools/gcc-bulid-11.1.0
- cd /data/tools/gcc-bulid-11.1.0
## 生成makefile文件
- ../gcc-11.1.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
## 编译安装(注:编译时间较长,请耐心等待)
- make -j 2
- //make -j 指定的是CPU内核数量,加快编译速度(根据实际情况修改)
- make install
## 查看gcc版本,验证升级是否成功
- gcc -v