温馨提示×

如何升级CentOS的C++版本

小樊
45
2026-08-18 23:02:57
栏目: 编程语言

CentOS 上升级 C++(实际上是升级 GCC / G++ 编译器) 的方法取决于你的 CentOS 版本。下面按 最常见场景 给你一套清晰、可操作的方案。


一、先确认当前 GCC / G++ 版本

gcc --version
g++ --version

常见情况:

  • CentOS 7:默认 gcc 4.8.5(很老)
  • CentOS 8 / Stream:稍新,但仍可能不是最新

二、CentOS 7 升级 C++(最常见)

✅ 推荐方案:使用 DevToolset(SCL)

这是 最安全、最稳定 的方式,不影响系统自带编译器。

1️⃣ 安装 SCL 源

sudo yum install -y centos-release-scl

2️⃣ 安装新版 GCC(例如 GCC 11)

sudo yum install -y devtoolset-11

可选版本:

  • devtoolset-7 → GCC 7
  • devtoolset-8 → GCC 8
  • devtoolset-9 → GCC 9
  • devtoolset-10 → GCC 10
  • devtoolset-11 → GCC 11

3️⃣ 启用新版 GCC

scl enable devtoolset-11 bash

验证:

gcc --version
g++ --version

⚠️ 这种方式 只对当前 shell 生效


4️⃣(可选)永久启用

编辑 ~/.bashrc

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

三、CentOS 8 / Stream 升级 C++

✅ 方法 1:使用 AppStream(推荐)

sudo dnf install gcc-toolset-11

启用:

scl enable gcc-toolset-11 bash

或永久:

echo "source /opt/rh/gcc-toolset-11/enable" >> ~/.bashrc

四、使用 CMake / Make 时指定新版 GCC

有时 shell 里是新的 GCC,但构建系统仍用旧的。

方式一:指定环境变量

export CC=/opt/rh/devtoolset-11/root/usr/bin/gcc
export CXX=/opt/rh/devtoolset-11/root/usr/bin/g++

方式二:CMake 指定

cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ ..

五、如果你想用 最新 GCC(如 13/14)

⚠️ 不推荐在生产系统直接覆盖系统 GCC

可选方案:从源码编译(高级)

wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.xz
tar -xf gcc-13.2.0.tar.xz
cd gcc-13.2.0
./contrib/download_prerequisites
mkdir build && cd build
../configure --disable-multilib --enable-languages=c,c++
make -j$(nproc)
sudo make install

❗ 风险较高,容易破坏系统环境


六、确认 C++ 标准支持

g++ -std=c++17 test.cpp
g++ -std=c++20 test.cpp

七、总结(推荐方案)

系统 推荐方式
CentOS 7 devtoolset-11
CentOS 8 / Stream gcc-toolset-11
生产环境 ❌ 不要替换系统 GCC
学习 / 开发 ✅ SCL / Toolset

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

  • ✅ CentOS 具体版本(cat /etc/centos-release
  • ✅ 你是要 编译某个项目 还是 学习 C++20/23
  • ✅ 是否需要 永久生效

我可以给你 精确到命令级别 的方案。

0