centos系统gcc多版本共存

说明

由于gcc编译安装非常费时,今天介绍一个gcc多版本共存的方案。需要某个版本的gcc就切换到某个版本

首先安装centos的第三方库scl,scl可以在不覆盖原有系统软件的情况下安装新的软件包与系统自带软件包共存,只支持64位系统安装

查看当前系统gcc版本

1
gcc --version

安装scl第三方源,并安装高版本gcc

1
yum -y install centos-release-scl

1. 安装gcc7.3

1
2
3

yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils

2. 安装gcc8.3

1
2
yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils

scl命令查看以安装gcc版本和版本切换

1
2
3
4
5
6
7
8
9
scl --list 
scl -l

#切换到gcc-7
scl enable devtoolset-7 bash

# 切换到gcc-8
scl enable devtoolset-8 bash

注意:
scl命令切换gcc版本是临时生效,退出shell或重启系统会恢复原系统gcc版本
若要设置长期生效,可将命令加入环境变量

1
echo "scl enable devtoolset-7 bash" >> /etc/profile

以停止支持的4.8/4.9/5.2的安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# gcc 4.8
wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtoolset-2.repo
yum -y install devtoolset-2-gcc devtoolset-2-gcc-c++ devtoolset-2-binutils


# gcc 4.9
wget https://copr.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo -O /etc/yum.repos.d/devtoolset-3.repo
yum -y install devtoolset-3-gcc devtoolset-3-gcc-c++ devtoolset-3-binutils

# gcc 5.2
wget https://copr.fedoraproject.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap/repo/epel-6/hhorak-devtoolset-4-rebuild-bootstrap-epel-6.repo -O /etc/yum.repos.d/devtoolset-4.repo
yum install devtoolset-4-gcc devtoolset-4-gcc-c++ devtoolset-4-binutils -y