一、检查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 无名参数与有名参数

    无名参数 配置 urls ,我们需要导入 url 模块,以()定义一个无名的变量 from django.contrib import admin from django.urls import pa ...

  2. jQuery事件绑定,解绑,触发

    事件绑定 1.bind(type,[data],fn) --type: 含有一个或多个事件类型的字符串,由空格分隔多个事件.比如"click"或"submit" ...

  3. OPPO realme 2在哪里打开Usb调试模式的简单步骤

    每当我们使用PC通过数据线链接到安卓手机的时候,如果手机没有开启USB调试模式,PC则没能成功识别我们的手机,这时我们需要找解决方法将手机的USB调试模式开启,下文我们记录一下OPPO realme ...

  4. 浏览器与android移动端视频互播技术实现

    手机端与平台之间的视频直播功能,主要通过集成多种开源视频框架以及采购第三方视频直播服务器产品来实现预定业务需求.视频直播对话功能的实现,主要经历了三个阶段:利用开源视频框架实现视频直播.采购第三方视频 ...

  5. C#零基础入门-1-安装IDE

    安装VS2017 下载安装,选择C#开发语言,过程略. 也可以使用VS2015

  6. MySQL, XE7使用FireDAC连接MySQL数据库

    发现使用DBExpress进行MySQL连接老是有莫名其妙的问题,直接改为FireDAC 在上一篇的DataSnap服务框架程序中,将连接的数据库由MSSQL改为本文的MySQL 使用的MySQL数据 ...

  7. C# 匿名对象(匿名类型)、var、动态类型 dynamic——实用之:过滤类属性、字段实用dynamic

    例子 返回一个LIst<oject>类型 而oject含有 30个字段 而我只需要两个字段.这里实用dynamic 和 linq. 上代码: 注意select new {} 为匿名类型,这 ...

  8. 单向链表的Java实现

    package testOffer.linkedList; import org.w3c.dom.Node; public class SingleLinkedList { //测试用例 public ...

  9. hibernate 查询字段是重复名字的处理方法

    目前遇到了三种情况: 一:当表的字段是数字类型(int,long .....) select name,ifnull(conpih.uh_id,0) from user; 将重复的字段如上修改用ifn ...

  10. Java 关于cannot resolve symbol 'log'报错问题

    我用的是IDEA,报错的内容是:cannot resolve symbol 'log' 如图所示: 解决方法: 1.安装插件:Settings→Plugins,输入lom回车: 2.然后选择Insta ...