提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
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
效果如图所示