温馨提示×

centos gcc和多版本如何管

小樊
38
2026-09-17 21:45:11
栏目: 智能运维

在 CentOS 上管理 GCC 多版本,常见、稳妥的做法有下面几种,按“推荐程度 + 场景”给你梳理一下。


一、最推荐:使用 scl / devtoolset(CentOS 7/8 官方方式)

适用场景

  • CentOS 7 / 8
  • 不想破坏系统默认 gcc
  • 只给某些构建用新 gcc

示例(CentOS 7)

# 安装 SCL
yum install centos-release-scl

# 安装 gcc 9
yum install devtoolset-9-gcc devtoolset-9-gcc-c++

# 临时启用
scl enable devtoolset-9 bash

# 查看版本
gcc --version

永久生效(某用户)

echo "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc

✅ 优点:安全、官方、不污染系统
❌ 缺点:每次 shell 要 enable


二、手动安装多版本 GCC(最灵活)

步骤示例(装 gcc 11)

# 安装依赖
yum install gmp-devel mpfr-devel libmpc-devel

# 下载源码
wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz
tar xf gcc-11.4.0.tar.gz
cd gcc-11.4.0

# 配置
./configure \
  --prefix=/usr/local/gcc-11 \
  --enable-languages=c,c++ \
  --disable-multilib

# 编译(很慢)
make -j$(nproc)
make install

使用

/usr/local/gcc-11/bin/gcc --version

切换(推荐用 alternatives)

alternatives --install /usr/bin/gcc gcc /usr/local/gcc-11/bin/gcc 100
alternatives --config gcc

✅ 优点:完全可控
❌ 缺点:编译慢、易踩坑


三、用 update-alternatives 管理多版本(最常用)

适合:

  • 已安装多个 gcc(系统 + 手动)
  • 想快速切换
alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8.5 50
alternatives --install /usr/bin/gcc gcc /usr/local/gcc-11/bin/gcc 100

alternatives --config gcc

同理管理 g++

alternatives --install /usr/bin/g++ g++ /usr/local/gcc-11/bin/g++ 100

四、容器方式(最干净,强烈推荐新项目)

podman run -it centos:7 bash
# 或
docker run -it gcc:11

✅ 不污染主机
✅ 版本任意


五、不同项目用不同 GCC(开发推荐)

CMake

cmake -DCMAKE_C_COMPILER=/usr/local/gcc-11/bin/gcc \
      -DCMAKE_CXX_COMPILER=/usr/local/gcc-11/bin/g++ .

Make

make CC=/usr/local/gcc-11/bin/gcc CXX=/usr/local/gcc-11/bin/g++

六、总结建议

场景 推荐方式
CentOS 7 系统 devtoolset + scl
多版本切换 alternatives
自定义版本 源码编译
新项目 容器
CI / 开发 指定 compiler 路径

如果你愿意,可以告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 需要哪个 GCC 版本
  • 是系统用还是编译某个项目

我可以直接给你一套 可用命令

0