公司要求,需要在CentOS6.5系统下进行一些测试。因为编写的测试程序中使用了一些C++11之后新增的特性,而CentOS6.5中安装的gcc版本为4.4.7,并不支持C++11,所以需要对gcc进行升级,在此记下升级过程,本次升级过程需要使用到root权限,所以安装时需要切换到root用户。

  1、准备工作

  因为升级过程中需要使用到g++,而CentOS系统并没有默认安装g++,所以需要手动安装,终端执行“yum install gcc-c++”;之后还需要安装flex,不然之后的gcc安装过程会报错。

  2、获取gcc安装包

  gcc的安装包的获取,可以从GitHub上下载所需的安装包:https://github.com/gcc-mirror/gcc/releases。这里以gcc6.4为例。

  3、解压

  上一步的网址中提供了两种压缩包:zip包和tar.gz。

  zip包解压:unzip gcc*.zip

  tar.gz包解压:tar -zxvf gcc*.tar.gz

  4、安装

  (1)解压后进入目录,运行“./contrib/download_prerequisites”。这个gcc提供的脚本,可以帮我们下载并配置好依赖库,可以帮我们节省大量的时间和精力。

  (2)mkdir build && cd build

  (3)../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

  (4)编译:make 这一步根据实际环境的不同,耗时不同,这一步我花费了将近一个半小时

  (5)安装:make install 这一步和上一步非常费时,总共将近三个小时。

  5、验证:

  gcc -v ,如果显示的gcc版本仍是以前的版本,则需要重启系统;或者使用“which gcc”,然后再执行“/usr/local/bin/gcc -v”,如果显示如下,则证明安装成功。(gcc 版本处应该显示的是“gcc 版本 6.4.0(GCC)”,这图是我从自己的机子上截的)

  注:虽然是在CentOS6.5下安装的,但安装过程同样适用于Linux的其他发行版本。  

杂记:Linux下gcc升级的更多相关文章

  1. Linux下Gcc生成和使用静态库和动态库详解

    参考文章:http://blog.chinaunix.net/uid-23592843-id-223539.html 一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库 ...

  2. Linux下gcc与gdb简介

    gcc编译器可以将C.C++等语言源程序.汇编程序编译.链接成可执行程序.gdb是 GNU 开发的一个Unix/Linux下强大的程序调试工具. linux下没有后缀名的概念.但 gcc 根据文件的后 ...

  3. Linux下Gcc生成和使用静态库和动态库详解(转)

    一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...

  4. linux下gcc编译多个源文件、gdb的使用方法

    一. gcc常用编译命令选项 假设源程序文件名为test.c. 1. 无选项编译链接 用法:#gcc test.c 作用:将test.c预处理.汇编.编译并链接形成可执行文件.这里未指定输出文件,默认 ...

  5. Linux下GCC的使用

    1简介 GCC 的意思也只是 GNU C Compiler 而已.经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言:它现在还支持 Ada 语言.C++ 语言.Java 语言.Objective ...

  6. linux下gcc编译的参数详细说明

    参考网址:1 http://hi.baidu.com/zengzhaonong/item/f1f9383565fa5c302e0f8125 gcc使用方法 汇总 2 http://s99f.blog. ...

  7. Linux下gcc编译生成动态链接库*.so文件并调用它【转载】

    动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一 ...

  8. Linux下gcc编译生成动态链接库*.so文件并调用它 是转载的

    动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一 ...

  9. Linux下gcc编译生成动态链接库*.so文件并调用它

    动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一 ...

随机推荐

  1. C++之namespace、bool

    namespace: 1.namespace:标识符的各种可见范围.C++ 标准程序库中的所有标识符都被定义在一个名为  std 的namespace中. 2.当使用<iostream>的 ...

  2. 十大经典排序算法(Javascript实现)

    前言 总括: 本文结合动图详细讲述了十大经典排序算法用Javascript实现的过程. 原文博客地址:十大经典排序算法 公众号:「菜鸟学前端」,回复「666」,获取一揽子前端技术书籍 人生有情泪沾衣, ...

  3. O - Snacks(DFS序)

    百度科技园内有nn个零食机,零食机之间通过n−1n−1条路相互连通.每个零食机都有一个值vv,表示为小度熊提供零食的价值. 由于零食被频繁的消耗和补充,零食机的价值vv会时常发生变化.小度熊只能从编号 ...

  4. day39-进程-队列

    #队列Queue:进程之间数据是隔离的,不共享的,但是通过multiprocessing的Queue可以实现进程之间的通信. #1.先进先出:把1 2 3放到队列里,按1 2 3的顺序拿出来. fro ...

  5. python语法基础-文件操作-长期维护

    ###############    python-简单的文件操作  ############### # python中文件的操作 # 文件操作的基本套路 # 1,打开文件,默认是是只读方式打开文件 ...

  6. reviewer回信

    收到reviewer回信之后的情况 Peer review其实是一个CA(质检)过程.文章投稿后的几种状态:Reject.resubmit和revise-and-resubmit. 收到回信之后,re ...

  7. Momentum(动量)方法的python实现

    Momentum方法可以说是对SGD的进一步优化,细节可以参考这里 这里用python对其进行简单实现,如下: # coding=utf-8 """ 基于小批量梯度下降来 ...

  8. java.lang.NoSuchMethodError: org.springframework.util.Assert.notNull(Ljava/lang/Object;Ljava/util/function/Supplier;)V

    分析,jar包冲突,然后看pom.xml文件 原因在于jar包冲突,版本不兼容, 错误的代码:  可以看到有很多不同版本的重复的spring-test依赖 <dependency> < ...

  9. 让Spring不再难懂-ioc篇

    写过java的都知道:所有的对象都必须创建:或者说:使用对象之前必须先创建.而使用ioc之后,你就可以不再手动创建对象,而是从ioc容器中直接获取对象. 就好像我们无需考虑对象的销毁回收一样,因为ja ...

  10. VSTO外接程序项目只用1个文件实现Ribbon CustomUI和CustomTaskpane定制【VB.Net版】

    VSTO中的自定义功能区和自定义任务窗格需要用到各种命名空间.添加所需文件,才能实现.后来我发现可以把所有代码都写在ThisAddin.vb这个默认文件中. 大家可以在Visual Studio中创建 ...