摘要:

在编译开源的FunASR项目的C++代码时,可能要求的gcc版本不符合,需要升级gcc版本,但是从网上搜索升级gcc方式,大部分都是通过简单的yum命令方式升级,我也尝试了这个方式,这种方式并不能升级到最新的版本,想要升级到最新版本需要自行下载源码,通过源码编译方式升级。

1、下载相关依赖

gcc下载地址:http://ftp.gnu.org/gnu/gcc/?C=M;O=D

gcc国内下载地址:https://mirrors.nju.edu.cn/gnu/gcc/gcc-11.4.0/

wget https://mirrors.nju.edu.cn/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz # 这里下载的是gcc 11.4版本
./contrib/download_prerequisites # 执行这行命令会自动下载gcc相关依赖
# 下载完成依赖之后,解压
tar -zxvf gmp-6.1.0.tar.bz2
tar -zxvf mpfr-3.1.6.tar.bz2
tar -zxvf mpc-1.0.3.tar.gz
tar -zxvf isl-0.18.tar.bz2

2、编译安装相关依赖

需要注意:下面的所有命令中make -j 4指的是使用4核cpu一起编译,请根据自己的服务器实际情况设置。

同时还需要注意依赖的版本问题,请填写你自己实际的版本。

编译安装gmp

cd gmp-*
./configure -prefix=/usr/local/gmp-6.1.0
make -j 4
make install

编译安装mpfr

cd mpfr-*
./configure -prefix=/usr/local/mpfr-4.1.0 --with-gmp=/usr/local/gmp-6.1.0
make -j 4
make install

编译安装mpc

cd mpc-*
./configure -prefix=/usr/local/mpc-1.2.1 --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-4.1.0
make -j 4
make install

编译安装isl

cd isl-*
./configure --prefix=/usr/local/isl-0.18  --with-gmp=/usr/local/gmp-6.1.0
make -j 4
make install

**补充说明:**如果没有下载这些依赖,那么你也可以运行通过下面的方式下载。

wget http://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.xz
wget http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.xz
wget http://isl.gforge.inria.fr/isl-0.18.tar.xz

3、编译安装GCC

该过程需要等待很长时间,请耐心等待。

# 切换到解压出来的gcc目录里面
# 执行配置
./configure -prefix=/usr/local/gcc-11.4.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.6 --with-mpc=/usr/local/mpc-1.0.3
# 编译
make -j 4
# 安装
make install

参考文档

[1] Centos7.5下源码编译安装gcc-8.2.0

[2] CentOS7 编译安装 GCC11

[3] GCC官网

Q.E.D.


热爱生活,热爱程序