Linux系统下源码编译升级gcc(6.5.0&11.1.0),


 一、前言

本文介绍在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版本

  1. gcc -v 

 

三、升级到6.5.0版本

## 下载解压

  1. cd /data/tools 
  2. wget http://ftp.gnu.org/gnu/gcc/gcc-6.5.0/gcc-6.5.0.tar.gz 
  3. tar xf gcc-6.5.0.tar.gz 

## 下载依赖文件

  1. cd gcc-6.5.0/ 
  2. ./contrib/download_prerequisites 

## 新建gcc-bulid-6.5.0目录(与gcc-6.5.0同级)并进入该目录中(目录名自定义)

  1. mkdir -p /data/tools/gcc-bulid-6.5.0 
  2. cd /data/tools/gcc-bulid-6.5.0 

## 生成makefile文件

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

## 编译安装(注:编译时间较长,请耐心等待)

  1. make -j 2 
  2. //make -j 指定的是CPU内核数量,加快编译速度(根据实际情况修改) 
  3. make install 

## 查看gcc版本,验证升级是否成功

  1. gcc -v 

 

四、升级到11.1.0版本

## 下载解压

  1. cd /data/tools 
  2. wget http://ftp.gnu.org/gnu/gcc/gcc-11.1.0/gcc-11.1.0.tar.gz 
  3. tar xf gcc-11.1.0.tar.gz 

## 下载依赖文件

  1. cd gcc-11.1.0/ 
  2. ./contrib/download_prerequisites 

## 新建gcc-bulid-11.1.0目录(与gcc-11.1.0同级)并进入该目录中(目录名自定义)

  1. mkdir -p /data/tools/gcc-bulid-11.1.0 
  2. cd /data/tools/gcc-bulid-11.1.0 

## 生成makefile文件

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

## 编译安装(注:编译时间较长,请耐心等待)

  1. make -j 2 
  2. //make -j 指定的是CPU内核数量,加快编译速度(根据实际情况修改) 
  3. make install 

## 查看gcc版本,验证升级是否成功

  1. gcc -v 

 

相关内容