centos7离线升级gcc成功案例

需求概述

centos7默认gcc(g++)版本为4.8,需要升级至7.3。计算机受安全策略限制不能联网,但可以(有限制的)拷贝文件。

解决方案

编译源码安装。gcc依赖gmp、mpc、mpfr,但可以通过配置脚本一起编译。

软件包版本:

gcc-7.3.0

gmp-5.0.1

mpc-1.3.1

mpfr-4.1.1

操作步骤

1 下载源码

gcc源码:

Index of /gnu/gccicon-default.png?t=N7T8https://ftp.gnu.org/gnu/gcc/

依赖软件:Index of /gnu/gmpicon-default.png?t=N7T8https://ftp.gnu.org/gnu/gmp/Index of /gnu/mpcicon-default.png?t=N7T8https://ftp.gnu.org/gnu/mpc/Index of /gnu/mpfricon-default.png?t=N7T8https://ftp.gnu.org/gnu/mpfr/

2 解压缩

将上述4个软件的压缩包解压缩到同一个目录下,得到:

gcc-7.3.0

gmp-5.0.1

mpc-1.3.1

mpfr-4.1.1

4个文件夹

3 创建软链

执行:

cd gcc-7.3.0
mkdir build
ln -s ../gmp5.0.1 gmp
ln -s ../mpc-1.3.1 mpc
ln -s ../mpfr-4.1.1 mpfr
cd build

4 执行配置脚本

执行

../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

如果你选择的gcc版本与我不同,这一步有可能报错,根据错误信息增加(或升级)依赖软件即可。

5 编译安装

make
make install

make的时间很长,可以用-j参数多线程加速。

6 判断是否升级成功

使用如下命令查看gcc和g++版本

gcc -v
g++ -v

如果你是远程登录到服务器操作的,需要新建终端执行,否则有可能判断为旧版本但实际升级成功了。

注意事项

这种方法升级后电脑上会同时有2个版本的gcc,系统原装的在/usr/bin,新安装的默认位置是/usr/local/bin。

使用makefile/cmake编译时选择哪个版本与CC变量有关,需要妥善设置。这里坑很多,所以我直接禁用了旧版本。

按照下面的步骤操作可以禁用旧版本:

1、进入/usr/bin。

2、备份gcc、g++、c++、cpp四个文件。

3、建立软链(ln -s),将上述4个文件指向/usr/local/bin下对应的文件。

参考资料

【linux离线升级gcc版本---gcc4.8.5-->gcc12.2.0】-CSDN博客

---完---

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值