要在CentOS上使用GCC支持新特性,您可以通过以下两种主要方法升级GCC版本:
使用SCL(Software Collections)
SCL是Red Hat/CentOS等系统的官方解决方案,允许用户在同一系统中安装和使用多个软件版本(如Python、GCC等),而不会影响系统的软件版本。
- 安装SCL仓库:
sudo yum install centos-release-scl
- 启用SCL仓库中的GCC版本:
对于CentOS 7及以上版本,您可以安装特定的GCC版本,例如GCC 9:
sudo yum install devtoolset-9-gcc*
- 使用SCL命令启用新版本的GCC:
scl enable devtoolset-9 bash
- 验证GCC版本:
gcc --version
注意:以上方式只是会在当前shell窗口生效,如果要想永久生效,那么可以添加以下命令到~/.bashrc
:
source scl_source enable devtoolset-9
手动编译GCC源码
- 下载指定GCC版本的源码,例如GCC 11.2:
wget http://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz
- 安装依赖库:
sudo yum install gmp-devel mpfr-devel libmpc-devel
- 解压GCC并创建编译目录:
tar -xf gcc-11.2.0.tar.gz cd gcc-11.2.0 mkdir -p build cd build
- 配置并编译GCC:
../configure --prefix=/usr/local/gcc-11.2.0 --enable-languages=c,c++ make -j$(nproc)
- 安装GCC:
sudo make install
- 配置GCC的环境变量:
echo 'export PATH=/usr/local/gcc-11.2.0/bin:$PATH' >> ~/.bashrc source ~/.bashrc
- 验证GCC版本:
gcc --version
通过以上步骤,您可以将CentOS系统中的GCC升级到较新的版本,从而支持C++11及以后的新特性。