在 CentOS 上升级 C++ 标准库(libstdc++),本质上是升级 GCC(因为 libstdc++ 随 GCC 一同发布)。下面按常见场景说明。
g++ --version
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
如果 GLIBCXX 版本较低(如只有 GLIBCXX_3.4.x),说明需要升级。
yum install centos-release-scl
yum install devtoolset-11
scl enable devtoolset-11 bash
验证:
g++ --version
注意:
.bashrc 或启动脚本适合需要新 C++ 标准(C++20/23)的情况。
yum groupinstall "Development Tools"
yum install wget bzip2
wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
tar xf gcc-13.2.0.tar.gz
cd gcc-13.2.0
./contrib/download_prerequisites
mkdir build && cd build
../configure --disable-multilib --enable-languages=c,c++
make -j$(nproc)
make install
cp ./x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.* /usr/lib64/
ldconfig
libstdc++ 与 GCC 强绑定,不建议单独替换,否则容易:
✅ 使用官方镜像:
FROM gcc:13
或 CentOS + SCL:
FROM centos:7
RUN yum install -y centos-release-scl && yum install -y devtoolset-11
| 需求 | 建议 |
|---|---|
| C++11/14 | 系统 GCC 4.8+ |
| C++17 | devtoolset-8+ |
| C++20 | GCC 10+ |
| C++23 | GCC 13+ |
如果你能告诉我:
我可以给你精确命令。