gcc 是 Linux 系统的核心模块,同时,它可以编译使用 C,C++ 等语言编写的源代码。但是,在某些系统上自带的 gcc 版本过低或过高,导致一些软件无法正常安装和运行。本篇介绍在 CentOS 上如何编译安装指定版本的 gcc,默认在 root 用户下运行命令。

下载特定版本的 gcc 源码

下载 gcc 可以在下面的 官方网址 下载,里面有各版本的 gcc 源码。或者使用 Git 克隆最新版:

1
git clone https://gcc.gnu.org/git/gcc.git

如果官网下载慢,可以采用如下的镜像网址:

  1. 中国科技大学镜像网址
  2. 华中科技大学镜像网址
  3. 南京大学镜像网址
  4. 清华大学镜像网址

我这里下载的测试版本是 gcc-10.1.0,

1
2
3
4
wget -c http://ftp.gnu.org/gnu/gcc/gcc-10.1.0/gcc-10.1.0.tar.gz
# 或者下载到指定目录
wget -c http://ftp.gnu.org/gnu/gcc/gcc-10.1.0/gcc-10.1.0.tar.gz -p /root/.
tar -xzvf gcc-10.1.0.tar.gz

安装工具软件

因为下载的是 gcc 源码,因此,需要先编译才能安装。所以,需要在 CentOS 上需要安装一下工具软件,方法如下:

1
yum -y install wget bzip2 gcc gcc-c++ glibc-headers

注意,编译安装 gcc 需要首先已经安装有 gcc 才行。

编译安装指定版 gcc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
cd /root/gcc-10.1.0

# 下载依赖包
./contrib/download_prerequisites

# 创建文件夹,存储编译中产生的临时文件
mkdir build
cd build/

# 配置编译
../configure --prefix=/usr/local/gcc-10.1.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib

# 进行编译,只能进程数能够加速
make -j 8

# 安装,大约3-5分钟左右
make install

# 配置为默认 gcc
echo -e '\nexport PATH=/usr/local/gcc-10.1.0/bin:$PATH\n' >> /etc/profile.d/gcc.sh && source /etc/profile.d/gcc.sh
ln -sv /usr/local/gcc-10.1.0/include/ /usr/include/gcc

# 配置生效
ldconfig -v

# 导出验证
ldconfig -p | grep gcc

# 查看 gcc 版本号
gcc -v

参考链接

  1. CentOS 7.6 编译安装最新版本GCC 9.2.0 实录
  2. Linux升级gcc到最新版本–gcc-9.1.0
  3. 安装最新的GCC