升级GCC

GCC版本不能低于3.5.2,本文以升级到9.3.0版本为例。若当前环境的GCC版本高于3.5.2可以不执行本章节。

  1. 获取GCC9.3.0源码包。

    1
    2
    cd /opt
    wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz --no-check-certificate
    

  2. 解压GNU安装包

    1
    tar -vxf gcc-9.3.0.tar.gz
    

  3. 进入GNU源码目录

    1
    cd gcc-9.3.0
    

  4. 修改下载依赖配置

    1. 打开./contrib/download_prerequisites文件。
      vi ./contrib/download_prerequisites
    2. 按“i”进入编辑模式,将第35行和第222行分别修改为如下内容。
      1
      base_url='https://gcc.gnu.org/pub/gcc/infrastructure/'
      

      1
      || ${fetch} --no-check-certificate -O "${directory}/${ar}" "${base_url}${ar}"    \
      

    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。

  5. 下载依赖

    1
    ./contrib/download_prerequisites
    

  6. 执行以下命令进行编译安装

    1
    2
    3
    ./configure --enable-languages=c,c++ --disable-multilib
    make -j `nproc`
    make install
    

  7. 设置软连接

    1
    2
    3
    4
    5
    6
    ln -sf /usr/local/bin/gcc /usr/local/bin/gcc-9
    ln -sf /usr/local/bin/g++ /usr/local/bin/g++-9
    ln -sf /usr/local/bin/gcc /usr/local/bin/cc
    ln -sf /usr/local/bin/g++ /usr/local/bin/c++
    echo '/usr/local/lib64' | tee /etc/ld.so.conf.d/10_local-lib64.conf
    ldconfig -v
    

  8. 更新std库

    1
    2
    3
    4
    5
    cp /usr/local/lib64/libstdc++.so.6.0.28 /usr/lib64
    cd /usr/lib64
    rm -rf libstdc++.so.6
    ln -sf libstdc++.so.6.0.28 libstdc++.so.6
    hash gcc g++
    

  9. 查看gcc、g++版本。

    1
    gcc --version
    

    1
    g++ --version