首先向博主致敬,好的东西拿来共享了,用一下不错。

https://blog.csdn.net/clirus/article/details/62424517

0. 目标 

最近在学习c++11,我本机装的CentOS编译器较老,不支持C++11的新特性,所以我需要把gcc从

4.4.7升级到4.8.1。

1. 需要下载gcc的源码

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.1/gcc-4.8.1.tar.gz

当我们在自己的虚拟机中输入上面命令下载的时候,可能由于你的网络原因无法连接到服务器,出

现这种情况的时候就直接在本地的浏览器中访问http://......  这个地址,就可把压缩包download到本

地,然后在弄到虚拟机中解压继续后面的操作,不要忙活半天纠结。

2. 然后解压进入目录
 tar -xvzf gcc-4.8.1.tar.gz -C /opt/gcc
 cd /opt/gcc/gcc-4.8.1

执行如下命令:
 ./contrib/download_prerequisites

3. 然后在gcc-4.8.1平级目录下创建编译目录
 cd ..
 mkdir build_gcc_4.8.1

4. 接下来就是执行编译了

 cd build_gcc_4.8.1

../gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

make -j4    // make 还是时间有点长,不同机器配置可能时间不一样,我的持续了1个多小时

 make install

如果在执行make 和 make install的时候没有遇到error,那么恭喜你,已经完成了gcc-4.8.1安装了。
默认安装路径为:

  /usr/local/bin

5. 接下来就是升级版本了。

 /usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc-4.8.1 40

 /usr/sbin/update-alternatives --install /usr/bin/g++ g++ /usr/local/bin/g++ 40

6. 再次查看你服务器的gcc版本可以看到已经更新为4.8.1

gcc --version 

gcc (GCC) 4.8.1
Copyright © 2013 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。

总结:
但其实在make 和 make install的过程中,多多少少还会碰到一些莫名其妙的问题。

我曾经出现的问题就是在make的时候出错了,让我怀疑我下载的安装包是不是有问题。

后来执行 make clean 并删除所有 build的文件后,重新来了一遍,竟然成功了。

经过总结第一次失败和第二次成功的唯一区别是:

第二次gcc-4.8.1解压是放到/opt/gcc/目录下了,后续的build_gcc-4.8.1也是放到/opt/gcc目录下。

而第一次时,解压源码gcc-4.8.1和后续的build_gcc-4.8.1都是放到/opt/根目录下。

我在做的时候按照这个步骤,一路顺风就到了 4.8.1 没有出现Error,所以再次感谢博主的经验。

CentOS上升级gcc编译器使支持C++11的更多相关文章

  1. 如何在CentOS上升级php5.4至5.6?

    如何在CentOS上升级php5.4至5.6? 2017-01-10技术运维PHPApacheCentOSLinux 由于CentOS的默认的php安装源版本都是5.4以下的,如果你的项目对php版本 ...

  2. centos 6升级 GCC 到4.8

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

  3. 在CentOS 7.2下升级gcc编译器的版本

    默认情况下,CentOS 7.2预装的gcc版本是4.8.x,通过执行命令 gcc -v 可以看到,一般情况下这个版本的编译器已经满足需要了,但是某些特殊的时候为了支持C++更高的特性,需要对gcc编 ...

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

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

  5. centos 7升级gcc到10.2.0

    安装gcc 由于 Linux 操作系统的自由.开源,在其基础上衍生出了很多不同的 Linux 操作系统,如 CentOS.Ubuntu.Debian 等.这些 Linux 发行版中,大多数都默认装有 ...

  6. redhat下升级gcc编译器

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

  7. CentOS 7升级gcc版本

    Centos 7默认gcc版本为4.8,有时需要更高版本的,这里以升级至8.3.1版本为例,分别执行下面三条命令即可,无需手动下载源码编译 1.安装centos-release-scl sudo yu ...

  8. mac上 sublime的配置,支持c++11且支持输入

    首先下载mac版本的 sublimetext3 下载链接: https://www.sublimetext.com/3 接着可以按照其他博客的方法来安装一些插件,便于我们的工作和学习 安装sublim ...

  9. CentOS yum升级GCC到4.8

    wget http://people.centos.org/tru/devtools-2/devtools-2.repo .repo /etc/yum.repos.d --binutils devto ...

随机推荐

  1. 《CSS世界》读书笔记(三) --width:auto

    <!-- <CSS世界> 张鑫旭著  --> width:auto width:auto至少包含了以下4种不同的宽度表现: 充分可利用空间.比方说,<div>.&l ...

  2. 《CSS世界》读书笔记(二)

    <!-- <CSS世界> 张鑫旭著  --> 块级元素:水平流上只能单独显示一个元素 <li>元素默认的display值是list-item,是块级元素 块级盒子( ...

  3. Python基础(六)_全局变量声明、可变参数、关键字参数

    1. global声明全局变量 #声明name这个变量为全局变量,只是写在函数里面 #写代码时,尽量不要用全局变量,会一直占用内存.       ------->{'name':'abc','s ...

  4. phpstudy 安装 Apcahe SSL证书 实现https连接

    摘自:https://jingyan.baidu.com/article/64d05a022e6b57de54f73b51.html Windows phpstudy安装ssl证书教程. 工具/原料 ...

  5. 0.3:Before We Start

    文章著作权归作者所有.转载请联系作者,并在文中注明出处,给出原文链接. 本系列原更新于作者的github博客,这里给出链接. 需要做的准备 首先肯定是需要安装Unity,我这里选择的版本是Unity ...

  6. Spring笔记 #01# 一个小而生动的IOC例子代码

    索引 Spring容器的最小可用依赖 用XML定义元数据 实例化容器&使用容器 例子中仅包含两种类:英雄类Hero和武器类Weapon. 演示DI:给Hero初始化Weapon 演示AOP:法 ...

  7. Vue基础进阶 之 列表过渡

    在前面的博客我们一直在操作单个元素的过渡,如果是对多个元素过渡,例如列表,这时就要用到<transition-group>这个组件了: 如何使用:将要操作的列表元素放在<transi ...

  8. DataFrame数据转为list,再逐行写入Excel

    首先使用np.array()函数把DataFrame转化为np.ndarray(), 再利用tolist()函数把np.ndarray()转为list, 示例代码如下: # -*- coding:ut ...

  9. spool例子

    set head offset echo offset feed offset heads offset pages 50000SET NEWPAGE NONEcolumn yesterday new ...

  10. react-router 4.0(四)页面跳转验证提示

    import React from 'react' import ReactDOM from 'react-dom' import { HashRouter, Route, Link, Prompt ...