KylinV10 SP3 源码编译升级GCC版本至9.3.0

一、背景说明

博主本人安装的 Kylin 环境是 Kylin-Server-V10-SP3-2403-Release-20240426-x86_64.iso 镜像版本,因它默认的GCC版本为7.3.0,系统自带的yum源中也没有9.3.0的版本,故采用源码编译安装的方法。

二、准备工作

2.1 备份原GCC相关文件
#将原GCC相关文件打包,以防需要回退。
tar -czf /opt/gcc-7.3-backup.tar.gz /usr/bin/gcc /usr/bin/g++ /usr/lib64/libstdc++.so*
2.2 安装依赖包

若上述备份操作中报错提示没有/usr/bin/g++文件,先尝试安装依赖包后在重试备份操作

#安装编译GCC可能所需的工具和库
yum groupinstall "Development Tools" -y
yum install wget gmp-devel mpfr-devel libmpc-devel texinfo bzip2 -y
2.3 GCC-9.3.0源码包下载(官方源/清华源)
#官方源
wget https://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
#从清华镜像站下载(速度快,避免官方源超时)
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz

# 解压(解压后生成 gcc-9.3.0 目录)
tar -zxvf gcc-9.3.0.tar.gz
2.4 GCC内部依赖下载
#进入gcc-9.3.0目录
cd gcc-9.3.0

#下载gcc内部依赖
./contrib/download_prerequisites

如果执行 ./contrib/download_prerequisites 报错超时,使用清华源或是其他地方手动下载传入(在gcc-9.3.0目录中操作):

# 下载gmp-6.1.0
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.1.0.tar.xz
# 解压
tar -xvf gmp-6.1.0.tar.xz
# 重命名
mv gmp-6.1.0 gmp
 
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/mpfr/mpfr-3.1.4.tar.gz
tar -xvf mpfr-3.1.4.tar.gz
mv mpfr-3.1.4 mpfr
 
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
tar -xvf mpc-1.0.3.tar.gz
mv mpc-1.0.3 mpc

wget https://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2
tar -xvf isl-0.18.tar.bz2
mv isl-0.18 isl

三、编译安装

#在独立目录配置,避免污染源码
mkdir build && cd build
../configure --prefix=/usr/local/gcc-9.3.0 --enable-languages=c,c++ --disable-multilib

#编译并安装:利用多核CPU并行编译以加快速度
make -j$(nproc)
sudo make install

配置与验证:

#设置系统默认版本:创建软链接,使系统命令gcc指向新版本
ln -sf /usr/local/gcc-9.3.0/bin/gcc /usr/bin/gcc
ln -sf /usr/local/gcc-9.3.0/bin/g++ /usr/bin/g++

#更新标准库链接:替换系统旧的C++标准库
ln -sf /usr/local/gcc-9.3.0/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6

#验证安装
gcc --version
#能查看到GLIBCXX_3.4.28的输出
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX_3.4.28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值