CentOS上升级gcc编译器使支持C++11
首先向博主致敬,好的东西拿来共享了,用一下不错。
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的更多相关文章
- 如何在CentOS上升级php5.4至5.6?
如何在CentOS上升级php5.4至5.6? 2017-01-10技术运维PHPApacheCentOSLinux 由于CentOS的默认的php安装源版本都是5.4以下的,如果你的项目对php版本 ...
- centos 6升级 GCC 到4.8
centos 6升级 GCC 到4.8 安装最新版本的swoole 提示 pecl install swolle ... GCC 4.8 or later required. 首先想到的时候yum ...
- 在CentOS 7.2下升级gcc编译器的版本
默认情况下,CentOS 7.2预装的gcc版本是4.8.x,通过执行命令 gcc -v 可以看到,一般情况下这个版本的编译器已经满足需要了,但是某些特殊的时候为了支持C++更高的特性,需要对gcc编 ...
- CentOS 7 升级gcc/g++编译器
gcc的升级必须要使用源码进行升级,也就说,必须要使用源码进行编译才行.我的7.2的CentOS目前自带的gcc是4.8.5的,gcc从4.8之后开始支持C++11,但是鉴于现在C++14.C++17 ...
- centos 7升级gcc到10.2.0
安装gcc 由于 Linux 操作系统的自由.开源,在其基础上衍生出了很多不同的 Linux 操作系统,如 CentOS.Ubuntu.Debian 等.这些 Linux 发行版中,大多数都默认装有 ...
- redhat下升级gcc编译器
在有网络的环境下,采用下载gcc源码进行编译的方式升级gcc版本,所以需要本身已有gcc编译器. 获取 gcc-4.9.2的包: wget http://gcc.skazkaforyou.com/re ...
- CentOS 7升级gcc版本
Centos 7默认gcc版本为4.8,有时需要更高版本的,这里以升级至8.3.1版本为例,分别执行下面三条命令即可,无需手动下载源码编译 1.安装centos-release-scl sudo yu ...
- mac上 sublime的配置,支持c++11且支持输入
首先下载mac版本的 sublimetext3 下载链接: https://www.sublimetext.com/3 接着可以按照其他博客的方法来安装一些插件,便于我们的工作和学习 安装sublim ...
- CentOS yum升级GCC到4.8
wget http://people.centos.org/tru/devtools-2/devtools-2.repo .repo /etc/yum.repos.d --binutils devto ...
随机推荐
- DataTable插件 后台分页 (服务器端分页)
<script type="text/javascript"> var persontable; var personQueryCondition = { ...
- Generative Adversarial Nets
1. 基本思想 两个模型: 判别器:预测从生成器生成的样本的概率 生成器:生成样本时,最大化使得判别器发生错误的概率 最后得到唯一解:使得生成器生成的样本输入到判别器中,得到的概率全是1/2. ...
- oracle 11.2 asynch descriptor resize等待事件
asynch descriptor resize描述最近部分insert /*+ append */语句出现该等待时间,经查This event is set when the number of a ...
- springboot项目打成war包
在某种情况下,比如..........之下,我们不得不,将springboot打成war包 1.在pom.xml文件中修改 <packaging>war</packaging> ...
- Spring错误——Spring AOP——org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException
背景:学习切面,测试前置通知功能,xml配置如下 <?xml version="1.0" encoding="UTF-8"?> <beans ...
- Java 成员变量和属性的区别
例一: 一个Student pojo类: public class Student{ private String name; private int age; public String getNa ...
- LINQ之路14:LINQ Operators之排序和分组(Ordering and Grouping)
本篇继续LINQ Operators的介绍,这里要讨论的是LINQ中的排序和分组功能.LINQ的排序操作符有:OrderBy, OrderByDescending, ThenBy, 和ThenByDe ...
- ssh hibernate修改数据库
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in rea ...
- Spring-AOP环绕监听出错
Exception in thread "main" org.springframework.aop.AopInvocationException: Null return val ...
- redis缓存服务器集群搭建
一.安装redis 1.下载redis [root@redis ~]# wget http://download.redis.io/releases/redis-4.0.11.tar.gz 2.安装编 ...