CentOS 7上升级GCC

发布于:2025-02-25 ⋅ 阅读:(10) ⋅ 点赞:(0)

在CentOS 7上升级GCC(GNU编译器集合)可以通过以下步骤完成。默认情况下,CentOS 7自带的GCC版本较旧(通常是4.8.5),如果需要使用更新的GCC版本,可以通过安装devtoolset或从源码编译来升级。

方法一:使用 devtoolset 升级 GCC

devtoolset 是Red Hat提供的一组工具集,包含较新的GCC版本。以下是升级步骤:

  1. 安装 devtoolset 仓库
    首先,确保系统已启用Software Collections(SCL)仓库。

    sudo yum install centos-release-scl
    
  2. 安装所需的 devtoolset 版本
    例如,安装devtoolset-9(包含GCC 9.x):

    sudo yum install devtoolset-9
    

    其他可用的devtoolset版本:

    • devtoolset-7:GCC 7.x
    • devtoolset-8:GCC 8.x
    • devtoolset-9:GCC 9.x
    • devtoolset-10:GCC 10.x
    • devtoolset-11:GCC 11.x
  3. 启用 devtoolset
    安装完成后,启用devtoolset

    scl enable devtoolset-9 bash
    

    这会在当前shell会话中启用GCC 9.x。如果需要永久启用,可以将以下命令添加到~/.bashrc文件中:

    source /opt/rh/devtoolset-9/enable
    
  4. 验证GCC版本
    运行以下命令检查GCC版本:

    gcc --version
    

    如果显示的是新版本(例如9.x),则升级成功。


方法二:从源码编译安装GCC

如果devtoolset中没有你需要的GCC版本,或者你需要自定义编译选项,可以从源码编译安装GCC。

  1. 安装依赖
    首先,安装编译GCC所需的依赖:

    sudo yum groupinstall "Development Tools"
    sudo yum install gmp-devel mpfr-devel libmpc-devel
    
  2. 下载GCC源码
    从GNU官方网站下载所需的GCC版本源码包:

    wget http://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz
    
  3. 解压源码
    解压下载的源码包:

    tar -xvzf gcc-11.2.0.tar.gz
    cd gcc-11.2.0
    
  4. 配置和编译
    运行以下命令配置和编译GCC:

    ./configure --disable-multilib --enable-languages=c,c++
    make -j$(nproc)
    sudo make install
    
    • --disable-multilib:禁用多库支持。
    • --enable-languages=c,c++:指定编译C和C++编译器。
    • -j$(nproc):使用所有CPU核心加速编译。
  5. 验证GCC版本
    编译完成后,运行以下命令检查GCC版本:

    gcc --version
    

    如果显示的是新版本(例如11.2.0),则升级成功。


注意事项

  • 使用devtoolset升级GCC时,GCC仅在启用devtoolset的环境中生效。如果需要全局生效,可以将source /opt/rh/devtoolset-X/enable添加到~/.bashrc文件中。
  • 从源码编译GCC可能需要较长时间,具体取决于系统性能。
  • 如果系统中存在多个GCC版本,可以使用update-alternatives来管理默认版本。

通过以上方法,你可以在CentOS 7上成功升级GCC版本。