在 CentOS 上配置 多个 C++(GCC / G++)版本 常见有三种方式,按推荐程度从高到低说明,并给出可直接操作的示例。
适用于 CentOS 7 / 8,官方支持、稳定、不影响系统编译器。
# CentOS 7
yum install -y centos-release-scl
# CentOS 8(已 EOL,建议用 Alma / Rocky)
dnf install -y epel-release
dnf install -y scl-utils
yum install -y devtoolset-7 # GCC 7
yum install -y devtoolset-8 # GCC 8
yum install -y devtoolset-9 # GCC 9
yum install -y devtoolset-10 # GCC 10
# 临时切换(当前 shell)
scl enable devtoolset-9 bash
# 查看版本
gcc --version
g++ --version
✅ 只对当前 shell 生效,不影响系统默认 gcc
echo "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc
适合需要 GCC 11 / 12 / 13 / 14 的情况。
yum groupinstall -y "Development Tools"
yum install -y gmp-devel mpfr-devel libmpc-devel
wget https://ftp.gnu.org/gnu/gcc/gcc-12.3.0/gcc-12.3.0.tar.xz
tar -xf gcc-12.3.0.tar.xz
cd gcc-12.3.0
./contrib/download_prerequisites
mkdir build && cd build
../configure \
--prefix=/usr/local/gcc-12 \
--enable-languages=c,c++ \
--disable-multilib
make -j$(nproc)
make install
export PATH=/usr/local/gcc-12/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/gcc-12/lib64:$LD_LIBRARY_PATH
gcc --version
/usr/local/gcc-12/bin/g++
/usr/local/gcc-10/bin/g++
开发时常用,不修改系统环境。
cmake \
-DCMAKE_C_COMPILER=/usr/local/gcc-12/bin/gcc \
-DCMAKE_CXX_COMPILER=/usr/local/gcc-12/bin/g++ \
..
gcc --version
which gcc
rpm -qa | grep gcc
| 场景 | 推荐方式 |
|---|---|
| CentOS 7 / 8 | ✅ devtoolset |
| 需要 GCC ≥ 11 | ✅ 手动编译 |
| CI / 项目隔离 | ✅ CMake 指定 |
| 生产环境 | ✅ devtoolset |
直接告诉我你的 CentOS 版本 + 需要的 GCC 版本 即可。