在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 ...
随机推荐
- 利用StringEscapeUtils对字符串进行各种转义与反转义(Java)
apache工具包common-lang中有一个很有用的处理字符串的工具类,其中之一就是StringEscapeUtils,这个工具类是在2.3版本以上加上的去的,利用它能很方便的进行html,xml ...
- QGEditors.WinForms WinForms下使用的部分扩展控件
Nuget: https://www.nuget.org/packages/QGEditors.WinForms/ PM> Install-Package QGEditors.WinForms ...
- 发送ajax请求时页面被刷新
浏览器默认会认为 button 的属性是submit.type='submit',会发生提交表单的默认行为,为button添加type="button"即可.
- JavaScript系列文章:从let和const谈起
注册博客园账号也有好些年了,有事没事经常来逛逛,感觉博客园的同学们一直都很活跃,相比国内其他社区来讲,这里的技术氛围很浓,非常适合学习和交流,所以博主我也决定在这里驻扎了,在这里,博主希望能坚持写一些 ...
- History lives on in this distinguished Polish city II 2017/1/5
原文 Some fresh air After your time underground,you can return to ground level or maybe even a little ...
- HTTP Cookie详解
1.什么是HTTP Cookie? Wikipedia给出的定义是:An HTTP cookie is a small piece of data sent from a website and st ...
- linux命令汇总
GPU使用率 使用率查看,GPU-Util $ nvidia-smi 实时查看 $ watch [options] command 最常用的参数是 -n, 后面指定是每多少秒来执行一次命令. 监视显存 ...
- C#技术漫谈之垃圾回收机制(GC)
GC的前世与今生 虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久.早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是 ...
- vim + ctags + taglist配置和使用
vim +ctags + taglist ,ctags+cscope 安装配置和使用 内容:VIM下ctags和taglist的安装配置方法:一键安装 ctags和cscope的方法 :vim语法高亮 ...
- java 多线程 1 线程 进程
Java多线程(一).多线程的基本概念和使用 2012-09-10 16:06 5108人阅读 评论(0) 收藏 举报 分类: javaSE综合知识点(14) 版权声明:本文为博主原创文章,未经博 ...