温馨提示×

centos升级c++版本怎么弄

小樊
45
2026-09-06 03:58:38
栏目: 编程语言

在 CentOS 上“升级 C++ 版本”,通常说的是升级 GCC / G++ 编译器版本(因为 C++ 标准是由 GCC 提供的)。下面按常见场景给你一套实用做法。


一、先确认当前版本

gcc --version
g++ --version

CentOS 7 默认一般是 gcc 4.8.5(不支持 C++14/17 完整特性)
CentOS 8 默认一般是 gcc 10


二、CentOS 7 推荐方案(最常用)

✅ 方案 1:使用 Software Collections(官方推荐,安全)

sudo yum install centos-release-scl
sudo yum install devtoolset-9  # 或 10 / 11

启用:

scl enable devtoolset-9 bash

查看版本:

gcc --version

⚠️ 注意:

  • 只对当前 shell 生效
  • 想永久生效可写进 .bashrc:
echo "source /opt/rh/devtoolset-9/enable" >> ~/.bashrc

可选版本:

  • devtoolset-7(gcc 7)
  • devtoolset-9(gcc 9)
  • devtoolset-11(gcc 11)

✅ 方案 2:手动编译 GCC(不推荐新手)

适合需要非常新版本(如 gcc 13):

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

⚠️ 耗时长、易出错


三、CentOS 8 / Stream

用 dnf 安装 GCC 工具集

sudo dnf install gcc gcc-c++
sudo dnf install gcc-toolset-12
scl enable gcc-toolset-12 bash

四、只升级“C++ 标准库”(libstdc++)

如果你是运行程序时报错 libstdc++.so.6: version not found:

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

解决方式:

  • 升级 GCC(最干净)
  • 或单独拷贝新版 libstdc++.so.6(有风险)

五、验证 C++ 新特性

g++ -std=c++17 test.cpp -o test
./test

六、总结建议

系统 推荐方式
CentOS 7 devtoolset-9/11
CentOS 8 gcc-toolset
需要最新 编译 GCC

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

  • CentOS 几?
  • 当前 gcc 版本?
  • 是编译用还是运行程序用?

我可以给你精确命令。

0 踩