温馨提示×

怎么在CentOS升级C++版本

小樊
32
2026-08-04 01:19:13
栏目: 编程语言

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


一、先确认当前版本

g++ --version
gcc --version

常见情况:

  • CentOS 7:默认 gcc 4.8.5
  • CentOS 8:默认 gcc 8.x
  • CentOS Stream 9:gcc 11+

二、CentOS 7(最常见、也最麻烦)

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

这是 官方推荐、最安全、最稳定 的方式。

1️⃣ 安装 SCL 源

yum install -y centos-release-scl

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

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

验证:

g++ --version

4️⃣ 永久生效(推荐)

写入 .bashrc

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

不影响系统稳定性,生产环境首选


三、CentOS 8 / Stream 8 / 9

✅ 方法一:使用 AppStream(最简单)

yum install gcc gcc-c++ -y

查看可用版本:

yum list available gcc

✅ 方法二:安装指定版本(Stream 8/9)

dnf install gcc-toolset-11
scl enable gcc-toolset-11 bash

四、手动编译升级 GCC(不推荐新手)

⚠️ 风险高、耗时长、不建议生产环境

简要流程(示例 GCC 13)

yum groupinstall -y "Development Tools"
yum install -y gmp-devel mpfr-devel libmpc-devel

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)
make install

安装后:

export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH

五、只升级 C++ 标准库(libstdc++)

如果你只是想支持 C++17 / C++20,不需要升级 GCC,可以:

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

然后:

  • 用新 GCC 编译
  • 或复制新 libstdc++.so.6

⚠️ 有风险,请谨慎操作。


六、推荐方案总结

场景 推荐方式
CentOS 7 ✅ DevToolset
CentOS 8/9 ✅ AppStream / gcc-toolset
生产环境 ✅ SCL
学习 / 测试 手动编译

七、我可以帮你进一步确认

你可以直接告诉我:

  1. CentOS 版本(cat /etc/centos-release
  2. 想用 C++17 / C++20 / C++23 吗?
  3. 开发机 还是 生产服务器

我可以直接给你 最合适的一条命令方案

0