温馨提示×

CentOS如何升级C++版本

小樊
42
2026-07-08 18:49:24
栏目: 编程语言

CentOS 上升级 C++ 编译器(g++)版本,常见做法取决于你的 CentOS 版本。下面按 最常用、最安全 的方式给你一个完整说明。


一、先确认当前版本

g++ --version
gcc --version

CentOS 7 默认一般是:

  • gcc 4.8.5(较老,不支持 C++14/17 完整特性)

二、CentOS 7 升级 C++(推荐方式 ✅)

✅ 方法 1:使用 Developer Toolset(SCL)(最推荐)

这是 官方支持、最稳定 的方式,不影响系统自带 gcc。

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️⃣ 启用新版本(临时)

scl enable devtoolset-11 bash

验证:

g++ --version

4️⃣ 永久生效(可选)

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

优点

  • 不影响系统 gcc
  • 可多版本共存
  • 企业环境最安全

三、CentOS 8 / Stream 升级 C++

CentOS 8 使用 dnf,可以直接安装新版 gcc。

1️⃣ 安装 GCC

sudo dnf install gcc gcc-c++

2️⃣ 安装指定版本(如有)

sudo dnf install gcc-toolset-11

启用:

scl enable gcc-toolset-11 bash

四、手动编译安装 GCC(不推荐 ⚠️)

⚠️ 除非你有特殊需求(如最新 C++23 特性),否则不建议。

示例(以 gcc 13 为例):

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

⚠️ 风险:

  • 可能破坏系统
  • 升级麻烦
  • 需要手动管理动态库

五、只升级 libstdc++(不换编译器)

如果你只是想让程序支持新 C++ 标准:

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

然后升级 libstdc++

sudo yum install libstdc++

六、推荐方案总结 ✅

场景 推荐方案
CentOS 7 devtoolset-11
CentOS 8 / Stream gcc-toolset
生产环境 SCL
实验 / 学习 手动编译

七、示例:编译 C++17 程序

g++ -std=c++17 main.cpp -o main

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

  • ✅ CentOS 具体版本(7 / 8 / Stream)
  • ✅ 需要的 C++ 标准(C++11 / 14 / 17 / 20)
  • ✅ 是开发环境还是生产环境

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

0