centos7系统 通过编译安装gcc7.5.0

背景:

现有的centos7 gcc的最高版本为4.8.5 项目需要升级到7.1.0以上 正常方式可以通过以下命令即可完成升级:

复制代码
$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-7-gcc*
$ scl enable devtoolset-7 bash

**  注意:第三条指令scl enable devtoolset-7只是在当前会话中升级了gcc,如果想每次登录gcc自动升级,可以把scl enable devtoolset-7放在 ~/.bash_profile 文件中。**

但是最近centos官方镜像不能正常访问了,而阿里云等国内的yum云似乎也没有最新的gcc版本的镜像,于是需要手动编译的方式来安装gcc 以下以7.5.0版本为例,需要更高版本的话方法是一样的。

=============================================分割线, 下边是正式的步骤===========================================================

在这个地址下载安装包 https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz

上传到服务器 /usr/local目录下

执行命令解压

复制代码
$ tar -zxvf ./gcc-7.5.0.tar.gz
$ cd gcc-7.5.0

正常步骤是执行 ./contrib/download_prerequisites 来下载依赖 但是因为网络问题不能直接下载 所以需要手动去网站下载好上传到服务器 地址为:

https://gcc.gnu.org/pub/gcc/infrastructure/

执行命令 vim ./contrib/download_prerequisites

打开 ./contrib/download_prerequisites 可以看到到依赖的具体版本 共四个文件分别是

复制代码
gmp='gmp-6.1.0.tar.bz2'
mpfr='mpfr-3.1.4.tar.bz2'
mpc='mpc-1.0.3.tar.gz'
isl='isl-0.16.1.tar.bz2'

下载好后导入到 /usr/local/gcc-7.5.0目录下

安装 lbzip2(解压工具)

复制代码
$ yum install -y lbzip2

执行命令

复制代码
$  ./contrib/download_prerequisites

配置和编译

复制代码
$ mkdir build
​
$ cd build
​
$ ../configure --prefix=/usr/local/gcc-7.5.0 --enable-languages=c,c++ --disable-multilib
​
$ make -j$(nproc)
$ sudo make install
​

更新 PATH

复制代码
$ export PATH=/usr/local/gcc-7.5.0/bin:$PATH

将上述 export PATH 命令添加到你的 ~/.bashrc~/.bash_profile 文件中以使其永久生效。

通过以下命令检查安装的 GCC 版本:

复制代码
$ gcc --version
相关推荐
峥无5 分钟前
Linux 文件系统底层探秘:磁盘物理结构→inode→Ext 架构全链路
linux·运维·笔记
minji...26 分钟前
Linux 网络套接字编程(七)TCP服务端和客户端的实现——网络版本计算器
linux·运维·服务器·网络·c++·tcp/ip·udp
mounter62527 分钟前
Linux Kernel Design Patterns (Part 2):从经典链表到现代 XArray,拆解内核复杂数据结构的设计哲学
linux·数据结构·链表·设计模式·内存管理·kernel
虚幻如影30 分钟前
web端安全测试报告模板
linux·服务器·安全
郝学胜-神的一滴33 分钟前
epoll 反应堆模型深度拆解:从红黑树到回调闭环,手写高性能回射服务器
linux·运维·服务器·开发语言·c++·unix
mounter62541 分钟前
【Linux 网络进阶】下一代虚拟网络设备 netkit 详解:超越 veth 的云原生基石
linux·服务器·网络·io_uring·netkit·devmem·hard lease
zhangrelay44 分钟前
三分钟云课实践速通--数字电子技术-数电--SimulIDE
linux·笔记·学习·ubuntu·simulide
木木_王1 小时前
嵌入式Linux学习 | 数据结构 (Day04)链表升级(进阶优化 + 柔性数组原理 + 双向循环链表完整实现 + 高频面试深挖)
linux·数据结构·学习
有谁看见我的剑了?9 小时前
linux 添加硬盘后系统识别不到硬盘处理
linux·运维·服务器
yc_122411 小时前
用 Visual Studio 远程调试 Linux:从零到流畅的完整指南
linux·ide·visual studio