Centos7:升级gcc、g++到版本5.2.0

背景

        Centos7.9版本默认的g++版本是4.8.5,在实践golang项目中,用到C++14,编译时会报错:
gcc: error: unrecognized command line option ‘-std=c++14’

        

        因此,gcc需要升级到更高版本,我这里使用源码编译形式升级到gcc5.2.0,记录升级步骤,以供学习。

步骤

1、下载gcc5.2.0源码

切换到源码放置的目录(任意目录均可)

cd /usr/local/src

下载源码包

wget http://ftp.gnu.org/gnu/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2

解压

tar -jxvf gcc-5.2.0.tar.bz2

# 进入gcc目录安装

cd gcc-5.2.0

2、下载某些依赖包

        修改gcc-5.2.0目录下的依赖文件

       vim ./contrib/download_prerequisites

#! /bin/sh
GRAPHITE_LOOP_OPT=yes

# Necessary to build GCC.
MPFR=mpfr-2.4.2
GMP=gmp-4.3.2
MPC=mpc-0.8.1

#wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPFR.tar.bz2 || exit 1
wget https://ftp.gnu.org/gnu/mpfr/$MPFR.tar.bz2 --no-check-certificate || exit 1
tar xjf $MPFR.tar.bz2 || exit 1
ln -sf $MPFR mpfr || exit 1

#wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$GMP.tar.bz2 || exit 1
wget https://gcc.gnu.org/pub/gcc/infrastructure/$GMP.tar.bz2 --no-check-certificate || exit 1
tar xjf $GMP.tar.bz2  || exit 1
ln -sf $GMP gmp || exit 1

#wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPC.tar.gz || exit 1
wget https://gcc.gnu.org/pub/gcc/infrastructure/$MPC.tar.gz --no-check-certificate || exit 1
tar xzf $MPC.tar.gz || exit 1
ln -sf $MPC mpc || exit 1

# Necessary to build GCC with the Graphite loop optimizations.
if [ "$GRAPHITE_LOOP_OPT" = "yes" ] ; then
  ISL=isl-0.14

  #wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$ISL.tar.bz2 || exit 1
  wget https://gcc.gnu.org/pub/gcc/infrastructure/$ISL.tar.bz2 --no-check-certificate || exit 1
  tar xjf $ISL.tar.bz2  || exit 1
  ln -sf $ISL isl || exit 1
fi

执行下载命令,下载某些依赖包
./contrib/download_prerequisites

3、编译安装

# 创建bulid文件夹
mkdir build
cd build

#配置
../configure --prefix=/usr/local/gcc --enable-checking=release --enable-languages=c,c++ --disable-multilib


# 编译安装,注意:此过程耗时较长
make && make install


# 修改软连接
mv /usr/bin/gcc /usr/bin/gcc_bak
ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++_bak
ln -s /usr/local/gcc/bin/g++ /usr/bin/g++


# 查看升级后版本
gcc --verson
g++ --version

至此,gcc升级完毕。

你可能感兴趣的:(linux,知识,gcc升级,gcc5.2.0)