安装GCC

CentOS 7.6系统自带的GCC软件版本较低,需要升级GCC版本至5.3.0或者以上。openEuler 20.03操作系统自带的GCC版本为7.3.0,不需要升级GCC。如果需要在openEuler 22.03操作系统(操作系统自带的GCC版本为10.3.1)安装8.0.15版本,则需要安装GCC 7.3.0版本。

CentOS 7.6下升级到GCC 7.3.0的操作步骤请参见CentOS 7.6下升级GCC,openEuler 22.03下安装GCC 7.3.0的操作步骤请参见openEuler 22.03下安装GCC 7.3.0

CentOS 7.6下升级GCC

  1. 下载GCC 7.3.0。

    cd /home
    wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz --no-check-certificate

  2. 解压GCC源码包。

    1
    tar -xvf gcc-7.3.0.tar.gz
    

  3. 编译安装GCC。

    1. 进入GCC文件路径并配置GCC参数。
      1
      2
      cd /home/gcc-7.3.0
      ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-bootstrap
      

      • --prefix=PATH:指定GCC软件安装目录,默认路径“/usr”
      • --mandir=PATH:指定GCC软件文档目录,默认路径“/usr/share/man”
      • --infodir=PATH:指定GCC软件日志信息目录,默认路径“/usr/share/info”
      • --enable-bootstrap:指定启用bootstrap方式安装。

      如果配置报错提示“configure: error: no acceptable C compiler found in $PATH”,则执行以下命令。

      yum -y reinstall gcc gcc-c++
    2. 编译GCC源码。
      1
      make -j 96
      

      “-j 96”参数充分利用多核CPU优势,加快编译速度,参数“-j”后数字为CPU核数,可用cat /proc/cpuinfo | grep processor | wc -l进行查看,此数值应小于或等于CPU核数。

    3. 安装GCC。
      1
      make -j 96 install
      

  4. 查看GCC版本。

    1
    gcc -v
    

    可以看到GCC的版本已经升级为7.3.0。

openEuler 22.03下安装GCC 7.3.0

  1. 下载gmp源码包并解压。

    mkdir /home/gcc-7.3.0 && cd /home/gcc-7.3.0
    wget https://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2
    tar -jxvf gmp-6.1.0.tar.bz2

  2. 建立gmp编译目录,并进行编译安装。

    cd gmp-6.1.0
    mkdir build && cd build
    ../configure --prefix=/opt/tools/gcc/gmp-6.1.0
    make
    make install

    --prefix=/opt/ltools/gcc/gmp-6.1.0用于指定gmp的安装目录,若当前没有该目录,执行如上命令后将自行创建。

  3. 下载mpfr源码包并解压。

    cd /home/gcc-7.3.0
    wget https://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.bz2
    tar -jxvf mpfr-3.1.4.tar.bz2

  4. 建立mpfr编译目录,并进行编译安装。

    cd mpfr-3.1.4
    mkdir build && cd build
    ../configure --prefix=/opt/tools/gcc/mpfr-3.1.4 --with-gmp=/opt/tools/gcc/gmp-6.1.0
    make
    make install

    --prefix=/opt/tools/gcc/mpfr-3.1.4用于指定mpfr的安装目录,若当前没有该目录,执行如上命令后将自行创建。

  5. 下载mpc源码包并解压。

    cd /home/gcc-7.3.0
    wget https://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
    tar -zxvf mpc-1.0.3.tar.gz

  6. 建立mpc编译目录,并进行编译安装。

    cd mpc-1.0.3
    mkdir build && cd build
    ../configure --prefix=/opt/tools/gcc/mpc-1.0.3 --with-gmp=/opt/tools/gcc/gmp-6.1.0 --with-mpfr=/opt/tools/gcc/mpfr-3.1.4
    make
    make install

    --prefix=/opt/tools/gcc/mpc-1.0.3用于指定mpc的安装目录,若当前没有该目录,执行如上命令后将自行创建。

  7. 下载isl源码包并解压。

    cd /home/gcc-7.3.0
    wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2
    tar -jxvf isl-0.16.1.tar.bz2

  8. 建立isl编译目录,并进行编译安装。

    cd isl-0.16.1
    mkdir build && cd build
    ../configure -prefix=/opt/tools/gcc/isl-0.16.1 -with-gmp-prefix=/opt/tools/gcc/gmp-6.1.0
    make
    make install

    -prefix=/opt/tools/gcc/isl-0.16.1用于指定isl的安装目录,若当前没有该目录,执行如上命令后将自行创建。

  9. 设置环境变量。

    export LD_LIBRARY_PATH=/opt/tools/gcc/gmp-6.1.0/lib:${LD_LIBRARY_PATH}
    export LD_LIBRARY_PATH=/opt/tools/gcc/mpfr-3.1.4/lib:${LD_LIBRARY_PATH}
    export LD_LIBRARY_PATH=/opt/tools/gcc/mpc-1.0.3/lib:${LD_LIBRARY_PATH}
    export LD_LIBRARY_PATH=/opt/tools/gcc/isl-0.16.1/lib:${LD_LIBRARY_PATH}

  10. 重新加载环境变量设置。

    source /etc/profile

  11. 下载GCC源码包并解压。

    cd /home/gcc-7.3.0
    wget https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
    tar -xvzf gcc-7.3.0.tar.gz

  12. 建立GCC编译目录,并进行编译安装。编译过程大概需要30分钟。

    cd gcc-7.3.0
    mkdir build && cd build
    ../configure --prefix=/opt/tools/gcc/gcc-7.3.0 --enable-threads=posix --disable-checking --enable--long-long --enable-languages=c,c++ --with-gmp=/opt/tools/gcc/gmp-6.1.0 --with-mpfr=/opt/tools/gcc/mpfr-3.1.4 --with-mpc=/opt/tools/gcc/mpc-1.0.3 --disable-multilib
    make -j 96
    make install
    • --prefix=/opt/tools/gcc/gcc-7.3.0用于指定GCC的安装目录,若当前没有该目录,执行如上命令后将自行创建。
    • “-j 96”参数充分利用多核CPU优势,加快编译速度,参数“-j”后数字为CPU核数,可用cat /proc/cpuinfo | grep processor | wc -l进行查看,此数值应小于或等于CPU核数。

  13. 确认GCC版本。

    /opt/tools/gcc/gcc-7.3.0/bin/gcc --version