一、检查centos 里面是否安装了gcc g++

输入命令:rpm -qa|grep gcc*
有看到就出来gcc的东西就是装了
没有的话就yum install gcc* -y

二、升级gcc

对于Centos 6.x的系统,默认根据yum源安装的gcc都是4.4.7版本的,即使换成阿里的yum源也是4.4.7版本的。这对于大多数软件是够用的,但是个别软件需要C++ 11的特性,而gcc从4.7版本才加入C++ 11特性,要解决这个问题一般有两种方法:

方法一:手动下载高版本的gcc的源码进行编译安装,这还需要先安装gcc的依赖软件包,比较繁琐

步骤:
(1)下载gcc-6.4.0:https://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.gz

如果直接安装,会提示Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+,所以要下载和安装GMP、MPFR和MPC这些依赖库,还要下载isl依赖库:

gmp-6.1.2: https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
mpfr-4.0.1: https://www.mpfr.org/mpfr-current/mpfr-4.0.1.tar.gz
mpc-1.1.0: https://ftp.gnu.org/gnu/mpc/mpc-1.1.0.tar.gz
isl-0.20: http://isl.gforge.inria.fr/isl-0.20.tar.gz

(3)安装GMP、MPFR和MPC有顺序要求,GMP是基础、MPC依赖MPFR,最后安装isl。
在各个依赖包解压后的文件夹下分别执行

./configure
make
sudo make install

进行编译安装即可

(4)依赖库安装完成后最后编译安装gcc

./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make
sudo make install

实际编译安装时按照这种方法搞了好久,到最后在执行sudo make install命令进行安装时会报错,网上也没找到相关原因,后来就采用了下述的方法二升级gcc成功!

方法二:使用devtoolset升级gcc版本,这个方法相对方法一比较快速

1.对于有网的电脑
按下述步骤操作:
1)先执行:

sudo wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
sudo yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

也可以下载devtoolset-3或者devtoolset-4,视情况下载安装。
devtoolset目前有4个版本:devtoolset-1.1 devtoolset-2 devtoolset-3 devtoolset-4,
以上devtoolset的4个版本分别对应gcc的版本为4.7、4.8、4.9、5.2
上述命令表示在/etc/yum.repos.d/下先新增一个devtools-2的yum网络源,然后再安装devtoolset-2的三个软件包,注意到安装这3个软件包时会还会下载安装另外8个依赖包。
2)上述软件包安装成功后就安装了gcc 4.8的版本。但是默认是没有开启的,需要执行下面命令以开启devtoolset-2:

. /opt/rh/devtoolset-2/enable

但是这样只会对当前shell会话有效,要想一直有效,可以在~/.bashrc文件中添加:

. /opt/rh/devtoolset-2/enable

这样每次shell会话都会开启devtoolset-2了。
开启了devtoolset-2之后就可以正常完成make和make install了。

2.对于没有网的电脑
按下述步骤操作:
1)先在有网的电脑上执行:

sudo wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
sudo yum install --downloadonly --downloaddir=/home/y/Desktop devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

把上述下载下来的软件包都移动到新建的devtoolsetAndDependency文件夹下,然后将该文件夹拷贝到没有网的电脑,做成yum本地源。如何制作yum本地源请参考:Centos 制作本地源
2)然后执行:

sudo yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++

就会从本地yum源安装devtoolset-2了。

3)安装devtoolset-2完成后,如何开启devtoolset-2,请参照上面的 1.对于有网的电脑 所写的开启devtoolset-2的操作进行。

参考:
升级 GCC 支持C++11
CentOS 6.9升级GCC至6.4.0版本
CentOS 6下gcc升级的操作记录(由默认的4.4.7升级到6.4.0版本)

安装devtoolset来满足gcc不同版本的要求
---------------------
作者:yzpyzp
来源:CSDN
原文:https://blog.csdn.net/yzpbright/article/details/81571645
版权声明:本文为博主原创文章,转载请附上博文链接!

转载:Centos升级gcc的更多相关文章

  1. Linux(CentOS)升级gcc版本

    本人使用的是CentOS 6.2 64位系统,由于在安装系统的时候并没有勾选安装gcc编译器,因此需要自行安装gcc编译器. 系统信息查看命令: cat /etc/redhat-release 使用y ...

  2. centos升级gcc

    https://blog.csdn.net/lanwilliam/article/details/77893033 [root@DS-VM-Node239 ~]# yum install centos ...

  3. ubuntu 14.04 与 CentOS 升级GCC/G++至5版本

    # 支持 ubuntu 14.04 add-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update apt-get i ...

  4. centos 升级GCC/G++

    #get rep yum install centos-release-scl-rh #yum install centos-release-scl # install g++ 5.2.1 yum - ...

  5. CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)

    ---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update....   yum install 或者 添加y ...

  6. 【转】CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)

    原文地址:https://www.cnblogs.com/lzpong/p/5755678.html 我这里是centos7 升级到gcc8.1,过程差不多,参考这篇文章,记录一下. ---原文--- ...

  7. CentOS 7 升级gcc/g++编译器

    gcc的升级必须要使用源码进行升级,也就说,必须要使用源码进行编译才行.我的7.2的CentOS目前自带的gcc是4.8.5的,gcc从4.8之后开始支持C++11,但是鉴于现在C++14.C++17 ...

  8. centos 6升级 GCC 到4.8

    centos 6升级 GCC 到4.8   安装最新版本的swoole 提示 pecl install swolle ... GCC 4.8 or later required. 首先想到的时候yum ...

  9. Centos 6.5升级gcc : 源码安装 + rpm安装

    1. 前言 采用Centos 6.5默认的gcc版本为4.4.7,不支持c++ 11,需要升级: 首先想到用yum命令:执行yum update gcc-c++或yum update g++ 显示没有 ...

随机推荐

  1. Django 提交 form 表单

    创建 Django 的过程可以参考上一篇文章 https://www.cnblogs.com/klvchen/p/10601536.html 在 templates 文件夹下创建一个 index.ht ...

  2. Mac10.12下Python3.4调用oracle

    最近,由于项目的短信平台对其它浏览器兼容,只支持IE,但是我们移动端自动化需要测试iphone手机,必须要连接MAC系统下,众所周知,MAC对IE的不友好性,故没办法通过短信平台在UI层自动化获取短信 ...

  3. java或Jmeter实现两个日期相加减(2003-06-01-2003-05-01)

    在beanshell中写入如下代码, import java.io.FileInputStream; SimpleDateFormat myFormatter = new SimpleDateForm ...

  4. 智能ERP收银统计-优惠统计计算规则

    1.报表统计->收银统计->优惠统计规则          第三方平台优惠:(堂食订单:支付宝口碑券优惠)+(外卖订单:商家承担优惠)          自平台优惠:(堂食订单:商家后台优 ...

  5. go语言框架gin之集成swagger

    1.安装swag 在goLand中直接使用go get -u github.com/swaggo/swag/cmd/swag命令安装会报错 翻了很多博客,都没找到太合适的办法,根据博客中所写的操作还是 ...

  6. ORA-02266错误的批量生成脚本解决方案

    ORA-02266: unique/primary keys in table referenced by enabled foreign keys这篇博客是很早之前总结的一篇文章,最近导数时使用TR ...

  7. Neo4j之坑

    10个月前,我开始用neo4j做cmdb. 初体验下去neo4j很美好. 但是一年中发现一些问题, 仅仅是个人的体验.经供参考 查询语言 如果接触过Neo4j,都会为Cypher的简单和易用感觉到惊叹 ...

  8. Win 10 和 Ubuntu 16.04 双系统,安装完成后,设置默认的启动项

    当安装好了 Windows 和 Ubuntu 双系统之后,默认的启动项是 Ubuntu,我们可以来设置默认的启动项, 开机时,在启动项选择处,可以通过↑↓ 键来选择启动哪个系统,第一行序号是 0 ,第 ...

  9. LeetCode算法题-Flood Fill(Java实现)

    这是悦乐书的第306次更新,第325篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第173题(顺位题号是733).图像由二维整数数组表示,每个整数表示图像的像素值(从0到 ...

  10. windows最简单的局部截图工具

    大家写博客的时候应该经常要用截图吧!不知道大家用的都是什么截图工具. 1.最开始我只会键盘的printscreen截图,然后去电脑,附件,画图....总之很多步骤,贼麻烦. 2.然后用电脑玩qq的时候 ...