默认情况下,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编译器的版本的更多相关文章

  1. redhat下升级gcc编译器

    在有网络的环境下,采用下载gcc源码进行编译的方式升级gcc版本,所以需要本身已有gcc编译器. 获取 gcc-4.9.2的包: wget http://gcc.skazkaforyou.com/re ...

  2. 【Linux】CentOS下升级Python和Pip版本全自动化py脚本

    [Linux]CentOS下升级Python和Pip版本全自动化py脚本 CentOS7.6自带py2.7和py3.6 想要安装其它版本的话就要自己重新下载和编译py其它版本并且配置环境,主要是软链接 ...

  3. Mac OS 下升级gcc遇到的坑

    为了升级gcc,原来版本是4.8,想升级到4.9,因为在Mac上安装cocoNLP一直出错,想试试看是不是gcc版本太低的原因,因此在此想要升级到4.9 经历了三个问题: - brew update太 ...

  4. 为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 ...

  5. Ubuntu 14.04 LTS 下升级 gcc 到 gcc-4.9、gcc-5 版本

    如果没记错的话,阿里云ECS上的Ubuntu也是LTS版本. 如果还在使用较旧版本的Ubuntu,或者是Ubuntu LTS,那么我们是很难体验新版gcc的.怎么办呢? 我们或许可以自己去编译用旧版本 ...

  6. Windows下使用GCC编译器

    1.GCC编译器的选择 Windows下最常见的安装GCC的方式有两种:Cygwin和MinGW.本文主要介绍MinGW的安装配置. 2.下载MinGW 下载地址:http://sourceforge ...

  7. Linux环境下的GCC编译器与GDB调试工具介绍

    假如现在我们有如下代码需要编译运行和调试.文件名为:test.c #include <stdio.h> int main() { int day, month, year, sum, le ...

  8. CentOS 7.x下升级Python版本到3.x系列(新老版本共存)

    由于python官方已宣布2.x系列即将停止支持,为了向前看,我们升级系统的python版本为3.x系列服务器系统为当前最新的CentOS 7.4 1.安装前查看当前系统下的python版本号 # p ...

  9. Mac环境下升级gcc版本--rocksdb

    前言 在mac环境下编译rocksdb,需要配置依赖的编译环境,其中有一项比较麻烦:c++编译要支持C++11,但是在mac环境安装xcode-select --install之后,已经安装有了gcc ...

随机推荐

  1. 递推 HDU 2569

    考虑n-2 n-1 n z[n] 代表n个块 可行方案 1  n-2 和n-1 同 3*z[n-2] 2  n-2和n-1不同 2*(z[n-1]-z[n-2]); 减一减 然后可能是其中一种 *2 ...

  2. jQuery 树形菜单

    树形菜单 在 jQuery easyu中其左侧的主菜单使用的是 easyui 中的 tree 组件,不是太熟悉,不过感觉不是太好用. 比如 easyui 中的 tree 需要单击分叉节点前的小三角,才 ...

  3. Linux下 JDK安装

    在linux下安装JDK步骤如下: 第一步:查看Linux自带的JDK是否已安装 (1)查看jdk: [root@web-server ~]# rpm -qa|grep jdk ← 查看jdk的信息或 ...

  4. 每次更新obj和bin文件夹都生成nGB的文件

    今天受不了,把它们符号链接到机械硬盘上了 用mklink /d 创建的,也不知道和/j有什么区别

  5. SLES 11 SP3防火墙设置

    防火墙简介 SLES 11 SP3 系统安装后,防火墙一般是启动的,它有两个服务:SuSEfirewall2_setup.SuSEfirewall2_init 关闭防火墙 # 方法一 rcSuSEfi ...

  6. [UWP] 对应用进行A/B测试

    [对A/B测试的看法] 开发者在Dev Center中设置几种应用变体,这几种变体有几个变量的值不一样,比如有变体A和变体B(当然还可以加上变体C,Dev Center最多支持5个变体),A和B的不同 ...

  7. MVC重定向-自定义路由篇

    public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.Ignore ...

  8. Forward+

    http://aras-p.info/blog/2012/03/02/2012-theory-for-forward-rendering/ http://www.slideshare.net/taka ...

  9. 把域名绑定到某个项目,以nginx服务器为例

    一:登陆域名服务器平台,把域名解析到项目对应的IP上面. 二:配置nginx服务器 1./etc/nginx/conf.d/ 在服务器该目录下,添加.conf文件,如命名为:www.demo.com. ...

  10. 修改context 和 enforce?

    http://jingyan.baidu.com/article/8ebacdf0cce84849f75cd57b.html 可以彻底的 关闭 selinux, selinux的配置文件 在 /etc ...