温馨提示×

centos怎么升级c++版本

小樊
52
2026-09-30 04:11:14
栏目: 编程语言

在 CentOS 上“升级 C++ 版本”通常指两件事之一:

  1. 升级 g++(GCC)编译器版本(最常见)
  2. 升级系统 libc++ / libstdc++ 运行库

下面分情况说明。


一、查看当前 C++ / GCC 版本

g++ --version
gcc --version

CentOS 7 默认一般是 g++ 4.8.5
CentOS 8 默认一般是 g++ 8/10


二、CentOS 7 升级 C++(GCC)版本(推荐方式)

✅ 方法 1:使用 SCL(最安全、官方推荐)

sudo yum install centos-release-scl
sudo yum install devtoolset-11

启用:

scl enable devtoolset-11 bash

验证:

g++ --version

支持的版本示例:

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

⚠️ 只在当前 shell 生效,退出后恢复
永久生效(不推荐全局改):

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

✅ 方法 2:手动编译 GCC(高级)

yum install -y gmp mpfr mpc
wget https://ftp.gnu.org/gnu/gcc/gcc-11.3.0/gcc-11.3.0.tar.gz
tar -xzf gcc-11.3.0.tar.gz
cd gcc-11.3.0
./configure --enable-languages=c,c++ --disable-multilib
make -j$(nproc)
make install

⚠️ 风险高,容易破坏系统


三、CentOS 8 / Stream 升级 C++

✅ 方法 1:使用 AppStream

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

✅ 方法 2:使用新版 GCC(dnf)

sudo dnf install gcc-c++
gcc --version

四、只升级 libstdc++(运行库)

如果你是运行别人编译的程序报错:

GLIBCXX_3.4.29 not found

说明需要新版 libstdc++:

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

解决方式:

  • 安装 devtoolset / gcc-toolset
  • 或复制新 libstdc++.so.6 到程序目录

五、CMake 中使用新 C++

set(CMAKE_CXX_STANDARD 17)

或编译时:

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

六、总结建议

系统 推荐方式
CentOS 7 devtoolset-11
CentOS 8 gcc-toolset-11
生产环境 不要替换系统 GCC
编译程序 用 SCL 临时启用

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 当前 g++ 版本
  • 是想编译还是运行程序

我可以给你更精确的命令。

0 踩