在CentOS中,C++版本的可用性主要由GCC(GNU Compiler Collection)版本决定——GCC是CentOS默认的C++编译器,其版本决定了对C++标准(如C++11、C++14、C++17、C++20)的支持程度。例如:
CentOS的yum(CentOS 7及以下)或dnf(CentOS 8及以上)包管理器可安装预编译的GCC版本。例如:
sudo yum install gcc gcc-c++ # CentOS 7默认GCC 4.8.5
sudo dnf install gcc gcc-c++ # CentOS 8/Stream默认GCC 9/11
sudo yum install gcc-7 gcc-7-c++ # CentOS 7
安装后,通过gcc --version、g++ --version验证版本。Devtoolset是CentOS提供的开发工具集,允许在同一系统中安装多个GCC版本,并通过scl命令快速切换。例如:
sudo yum install centos-release-scl # CentOS 7
sudo yum install centos-release-scl-rh # CentOS 8/Stream
sudo yum install devtoolset-11
scl enable devtoolset-11 bash
~/.bashrc):echo "source /opt/rh/devtoolset-11/enable" >> ~/.bashrc
source ~/.bashrc
启用后,gcc --version、g++ --version将显示Devtoolset中的版本。若需要安装CentOS仓库中没有的GCC版本(如GCC 12),可通过源码编译安装:
sudo yum groupinstall "Development Tools" # 安装编译工具
sudo yum install gmp-devel mpfr-devel libmpc-devel # GCC编译依赖
wget https://ftp.gnu.org/gnu/gcc/gcc-12.2.0/gcc-12.2.0.tar.gz
tar -xzf gcc-12.2.0.tar.gz
cd gcc-12.2.0
-j$(nproc)加速编译,根据CPU核心数调整):mkdir build && cd build
../configure --prefix=/usr/local/gcc-12.2.0 --enable-languages=c,c++ --disable-multilib
make -j$(nproc)
sudo make install
PATH):echo 'export PATH=/usr/local/gcc-12.2.0/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
编译时间较长(约30分钟至1小时,视硬件配置而定),需确保网络稳定。无论采用哪种方法,安装完成后需通过以下命令验证C++编译器版本及标准库支持:
g++ --version # 查看G++(C++编译器)版本
gcc --version # 查看GCC(C编译器)版本(通常与G++版本一致)
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX # 查看C++标准库(libstdc++)支持的GLIBCXX版本
例如,GLIBCXX_3.4.29表示支持C++17的大部分特性,GLIBCXX_3.4.30支持C++20。