一、获取新版本的GCC源代码
获取gcc源代码方式有以下两种
1)ftp服务器: Index of /gnu/gcc
2)gcc官网: GCC Releases- GNU Project
二、以当前最新版本gcc-13.2举例
1) 下载gcc-13.2 版本
wget https://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
2) 解压缩
tar -xvf gcc-13.2.0.tar.gz
cd gcc-13.2.0
3) 依赖库下载
方法1: 自动下载依赖库(推荐)
备注:如果下载不了看方法2
./contrib/download_prerequisites
错误问题及解法:
问题1:
gmp-6.2.1.tar.bz2: 失败
sha512sum: 警告:1 个校验和不匹配
error: Cannot verify integrity of possibly corrupted file gmp-6.2.1.tar.bz2
问题1解法:
移除文件,重新下载
rm -rf gmp-6.2.1.tar.bz2
./contrib/download_prerequisites
问题2:
./contrib/download_prerequisites:行261: bzip2: 未找到命令
问题2解法:
yum install bzip2
./contrib/download_prerequisites
方法2: 手动下载依赖库
GMT: wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.2.1.tar.bz2
MPFR: wget https://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2
MPC: wget https://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.2.1.tar.gz
ISL: wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.24.tar.bz2
4)安装
安装脚本
# 创建预编译目录
mkdir build && cd build
# 生成编译makefile文件
../configure -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 --version
g++ --version