在 CentOS 上升级 C++ 编译器(g++)版本,常见做法取决于你的 CentOS 版本。下面按 最常用、最安全 的方式给你一个完整说明。
g++ --version
gcc --version
CentOS 7 默认一般是:
这是 官方支持、最稳定 的方式,不影响系统自带 gcc。
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-11
可选版本:
scl enable devtoolset-11 bash
验证:
g++ --version
echo "source /opt/rh/devtoolset-11/enable" >> ~/.bashrc
✅ 优点
CentOS 8 使用 dnf,可以直接安装新版 gcc。
sudo dnf install gcc gcc-c++
sudo dnf install gcc-toolset-11
启用:
scl enable gcc-toolset-11 bash
⚠️ 除非你有特殊需求(如最新 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
⚠️ 风险:
如果你只是想让程序支持新 C++ 标准:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
然后升级 libstdc++:
sudo yum install libstdc++
| 场景 | 推荐方案 |
|---|---|
| CentOS 7 | devtoolset-11 |
| CentOS 8 / Stream | gcc-toolset |
| 生产环境 | SCL |
| 实验 / 学习 | 手动编译 |
g++ -std=c++17 main.cpp -o main
如果你愿意,可以告诉我:
我可以给你 精确到命令级别 的方案。