在CentOS 7.2下升级gcc编译器的版本
默认情况下,CentOS 7.2预装的gcc版本是4.8.x,通过执行命令 gcc -v 可以看到,一般情况下这个版本的编译器已经满足需要了,但是某些特殊的时候为了支持C++更高的特性,需要对gcc编译器的版本进行升级,比如安装最新的Mariadb 10的时候,就需要使用高版本的gcc,具体升级过程如下:
首先去官网下载gcc的高版本安装包,镜像列表是:https://gcc.gnu.org/mirrors.html 进入后选择其中的镜像站,下载gcc即可,我这里要从4.8升级到4.9,所以这里下载的版本是4.9.3 下载地址是:http://fr.mirror.babylon.network/gcc/releases/gcc-4.9.3/ 下载其中的包为:gcc-4.9.3.tar.bz2
下载之后上传至Linux准备安装,如果此时直接进行编译安装,此时gcc会报出错误:configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. 也就是说安装该版本的GCC 需要GMP 版本 >= 4.2 MPFR版本 >= 2.4.0 MPC版本 >= 0.8.0 这3个依赖缺一不可,并且这3个依赖之间也具有相互依赖关系,即gmp独立安装,mpfr依赖于gmp,mpc依赖于gmp和mpfr,虽然执行gcc目录下的: ./contrib/download_prerequisites 可以解决依赖问题,但是一般国内下载速度比较慢,所以这里手动安装如下三个依赖:
这三个依赖分别是:gmp,mpfr和mpc,下载地址分别如下:
gmp:http://ftp.gnu.org/gnu/gmp/
mpfr(GNU镜像):http://ftp.gnu.org/gnu/mpfr/ 或者官网:http://www.mpfr.org/mpfr-current/
mpc:http://ftp.gnu.org/gnu/mpc/
三个软件包具体版本分别是:gmp-5.0.1.tar.gz,mpfr-3.1.5.tar.gz,mpc-1.0.3.tar.gz
首先安装gmp,命令如下:
tar -xvzf gmp-5.0..tar.gz
cd gmp-5.0./
mkdir temp
cd temp/
../configure --prefix=/usr/local/gmp-5.0.
make
make install
这样就安装好了,注意:编译时建议指定安装位置,以便后面加载依赖,这里是/usr/local下
然后安装mpfr,命令如下:
tar -xvzf mpfr-3.1..tar.gz
cd mpfr-3.1./
mkdir temp
cd temp/
../configure --prefix=/usr/local/mpfr-3.1. --with-gmp=/usr/local/gmp-5.0.
make
make install
到这里mpfr安装完毕,并且必须添加--with-gmp导入gmp依赖,如果不加这个参数也会安装成功,但是后面安装GCC会报一个内部依赖的错误,如果这里不加会很麻烦,然后再安装mpc,命令如下:
tar -xvzf mpc-1.0..tar.gz
cd mpc-1.0./
mkdir temp
cd temp/
../configure --prefix=/usr/local/mpc-1.0. --with-gmp=/usr/local/gmp-5.0. --with-mpfr=/usr/local/mpfr-3.1.
make
make install
同样一定要加上依赖的参数,现在mpc也安装完毕,然后执行 vim /etc/profile 编辑环境变量配置文件,直接在文件最后添加一行下面的变量:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-1.0./lib:/usr/local/gmp-5.0./lib:/usr/local/mpfr-3.1./lib
上面的路径要和实际安装时编译的路径一致,保存并退出后,执行 source /etc/profile 使环境变量生效
最后就可以开始安装gcc了,安装过程如下:
tar -jxvf gcc-4.9..tar.bz2
cd gcc-4.9./
mkdir output
cd output/
../configure --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.0. --with-mpfr=/usr/local/mpfr-3.1. --with-mpc=/usr/local/mpc-1.0.
然后开始编译并且安装:
make -j4
make install
make过程时间非常长,根据计算机配置不同,时间有所差别,一般来说半个小时到一个多小时都是正常的,因为gcc编译器相对来说还是比较庞大的一个项目的,安装成功之后执行 gcc -v 或者 gcc --version 查看新的版本信息如下:

可以看到,新的gcc版本4.9.3已经生效了,现在gcc升级就完成了
在CentOS 7.2下升级gcc编译器的版本的更多相关文章
- redhat下升级gcc编译器
在有网络的环境下,采用下载gcc源码进行编译的方式升级gcc版本,所以需要本身已有gcc编译器. 获取 gcc-4.9.2的包: wget http://gcc.skazkaforyou.com/re ...
- 【Linux】CentOS下升级Python和Pip版本全自动化py脚本
[Linux]CentOS下升级Python和Pip版本全自动化py脚本 CentOS7.6自带py2.7和py3.6 想要安装其它版本的话就要自己重新下载和编译py其它版本并且配置环境,主要是软链接 ...
- Mac OS 下升级gcc遇到的坑
为了升级gcc,原来版本是4.8,想升级到4.9,因为在Mac上安装cocoNLP一直出错,想试试看是不是gcc版本太低的原因,因此在此想要升级到4.9 经历了三个问题: - brew update太 ...
- 为CentOS 6、7升级gcc至4.8、4.9、5.2、6.3、7.3等高版本
CentOS 7虽然已经出了很多年了,但依然会有很多人选择安装CentOS 6,CentOS 6有些依赖包和软件都比较老旧,如今天的主角gcc编译器,CentOS 6的gcc版本为4.4,CentOS ...
- Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本
如果没记错的话,阿里云ECS上的Ubuntu也是LTS版本. 如果还在使用较旧版本的Ubuntu,或者是Ubuntu LTS,那么我们是很难体验新版gcc的.怎么办呢? 我们或许可以自己去编译用旧版本 ...
- Windows下使用GCC编译器
1.GCC编译器的选择 Windows下最常见的安装GCC的方式有两种:Cygwin和MinGW.本文主要介绍MinGW的安装配置. 2.下载MinGW 下载地址:http://sourceforge ...
- Linux环境下的GCC编译器与GDB调试工具介绍
假如现在我们有如下代码需要编译运行和调试.文件名为:test.c #include <stdio.h> int main() { int day, month, year, sum, le ...
- CentOS 7.x下升级Python版本到3.x系列(新老版本共存)
由于python官方已宣布2.x系列即将停止支持,为了向前看,我们升级系统的python版本为3.x系列服务器系统为当前最新的CentOS 7.4 1.安装前查看当前系统下的python版本号 # p ...
- Mac环境下升级gcc版本--rocksdb
前言 在mac环境下编译rocksdb,需要配置依赖的编译环境,其中有一项比较麻烦:c++编译要支持C++11,但是在mac环境安装xcode-select --install之后,已经安装有了gcc ...
随机推荐
- Java各种数据结构实现
1.单向链表 实现思路:创建Node类,包括自己的数据和指向下一个:创建Node类,包括头尾节点,实现添加.删除.输出等功能. tips:n = n.next不破坏链表结果,而n.next = n.n ...
- __new__静态方法
__new__静态方法 新式类都有一个__new__的静态方法,它的原型是object.__new__(cls[, ...]) cls是一个类对象,当你调用C(*args, **kargs)来创建一个 ...
- 如何将本地项目与coding.net/github上的项目绑定
得到coding.net/github项目的ssh协议地址 形如:·git@git.coding.net:wzw/leave-a-message.git· 在本地生成公钥 输入 ssh-keyge ...
- ORB-SLAM(六)回环检测
上一篇提到,无论在单目.双目还是RGBD中,追踪得到的位姿都是有误差的.随着路径的不断延伸,前面帧的误差会一直传递到后面去,导致最后一帧的位姿在世界坐标系里的误差有可能非常大.除了利用优化方法在局部和 ...
- css挤带边框的三角
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 添加自编译的apache为linux系统服务
步骤1添加服务脚本 #cp /app/apache2/bin/apachectl /etc/rc.d/init.d/httpd #ln -s /etc/rc.d/init.d/httpd /etc/r ...
- csv 中 数值被自动转换成科学计数法 的问题 excel打开后数字用科学计数法显示且低位变0的解决方法
保存在csv中的 013812345678,前面的0会被去掉,后面是科学计数法显示.保存成 col1,="013812345678" 即可. 注意,分隔符逗号后面直接接“=”等号. ...
- WordPress酷炫CSS3读者墙代码
前几日在大前端看到他站点中最新的CSS3读者墙代码,一看效果绚丽的不得鸟,立刻就开始研究了,多次研究未果,可终究是研究出来了,昨天刚成功,今天啊和童鞋来我站说读者墙头像显示不对,我一看,还真是,头像都 ...
- 浅谈Android样式开发之View Animation (视图动画)
引言 一个用户体验良好的App肯定少不了动画效果.Android为我们提供了2种动画框架,分别是视图动画(View Animation)和属性动画(Property Animation).视图动画比较 ...
- Linux系统下配置环境变量
一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登 ...