GCC升级到8.3.0

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

关于GCC: GCC是Linux系统下的一种 功能强大、性能优越的多平台编译器。
centos下的yum、Ubuntu下的apt-get都是十分好用的软件包管理工具;
但是有时我们需要进行本地编译安装时,我需要用到GCC,帮助我们进行编译;然而很多系统的自带GCC却依然是4.8.5版本,随着技术的迭代更新,许多软件的原文件,仅凭4.8.5版本已经不能满足。用4.8.5来进行编译安装往往会出现编译不通过、文件缺失等等问题。
这是我们就需要手动对我们系统的GCC进行升级


提示:以下是本篇文章正文内容,即 GCC升级步骤

一、升级前准备

所需工具用途安装
wget下载源码包yum install wget
tar解压源码包yum install tar
bzip2解压依赖库yum install bzip2
flex必备框架yum install flex

以上工具建议在正式下载安装之前进行,避免中途出现一些异常,而降低效率

二、wget下载gcc8.3.0

命令如下:

# wget后面跟下在连接
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-8.3.0/gcc-8.3.0.tar.gz

三、安装依赖库

1.解压 gcc8.3.0

命令如下:

# tar解压源码包
tar -zxvf gcc-8.3.0.tar.gz

2.进入解压目录

命令如下:

# 进入他解压目录
cd gcc-8.3.0

3.安装依赖库

命令如下:

# 安装依赖库
./contrib/download_prerequisites

PS: 其中依赖库有四个,分别是 gmp-6.1.0.tar.bz2、mpfr-3.1.4.tar.bz2、mpc-1.0.3.tar.bz2、isl-0.18.tar.bz2,在这一步会依次下载、解压、安装这四个依赖库,由于这四个依赖库是 .tar.bz2 格式,因此在解压时会用到bzip2这个包;如果之前没有安装这bzip2,这里会报错。

四、配置、编译、安装

1.配置

命令如下:

# 建立一个目录 build 、用来存放编译出来的文件
mkdir build
# 进入目录 build
cd build
# 配置
../configure --prefix=/usr/local/gcc --enable-languages=c,c++ --disable-multilib

2.编译 && 安装

命令如下:

# 编译
make
# 安装
make install

如果觉得两步麻烦,可以用&& 合并命令

# 编译 && 安装
make && make install

PS: 个人建议合并,因为编译时间非常长!这一步在我的云服务器上执行了近乎4小时;具体时间受限于系统配置和性能。所以如果可以的话,可以午休前开始编译,睡醒了差不多就好了

3.可能会遇到的问题

在这里可能回报错:flex :command not found
报错原因是没有安装flex
解决方案:yum install flex
如果在这里因为忘记安装flex报错,在安装完之后,需要先清空build目录下的文件,在重新执行配置、编译、安装
不清空的话会报错:error: `M4’ has changed since the previous run

五、配置gcc

1. 修改软连接

# 备份原来gcc的软连接
mv /usr/bin/gcc /usr/bin/gcc_old
# 创建新的 gcc 软连接
ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc
# 备份原来 g++ 软连接
mv /usr/bin/g++ /usr/bin/g++_old
# 创建新的 g++ 软连接
ln -s /usr/local/gcc/bin/g++ /usr/bin/g++

2.加入环境变量

# 设置添加环境脚本
vim /etc/profile.d/gcc.sh
# 写入脚本执行内容
export PATH=$PATH:/usr/local/gcc/bin
# 生效脚本
source /etc/profile.d/gcc.sh
gcc -v

六、检查gcc版本

# 查看版本
gcc -v

效果如图所示在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值