摘要:
在编译开源的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
参考文档
[3] GCC官网
Q.E.D.