一、背景说明
博主本人安装的 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

5340

被折叠的 条评论
为什么被折叠?



