因为平时用的linux虚拟机都是RHEL6.4, 自带的gcc版本号太低,不支持C++11,而从gcc4.8.1開始, gcc完美支持C++11全部特性。

故升级了一下。

以下是具体步骤:



1. 下载这4个安装包, gcc, gmp, mpfr, mpc.

  http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.1/gcc-4.8.1.tar.bz2

  ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2 

  http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2

  http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz



2. 解压缩gcc包

   tar jxvf gcc-4.8.1.tar.bz2



3. 解压缩其他三个包

   这3个包在gcc-4.8.1/contrib/download_prerequisites中有指定。

    tar jxf gmp-4.3.2.tar.bz2

    tar jxf mpfr-2.4.2.tar.bz2

    tar zxf mpc-0.8.1.tar.gz

    mv gmp-4.3.2 gcc-4.8.1/gmp

    mv mpc-0.8.1 gcc-4.8.1/mpc

    mv mpfr-2.4.2 gcc-4.8.1/mpfr

  放在一起后。就不用再单独编译这三个包了。这也是download_prerequisites中的做法。仅仅只是它用的是软链接来实现。



4. 開始编译 

  gcc的编译不能直接在源文件文件夹下进行,而是须要建立一个新的文件夹。在它以下进行编译。优点是编译过程中生成的编译文件不会影响源文件的内容。假设编译失败或者须要又一次编译新版本号。仅仅须要删除这个新建的文件夹就可以。

  mkdir gcc-4.8.1-build

  cd gcc-4.8.1-build/

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

  编译选项说明:--prefix指定gcc要安装到的路径,将来make install会安装到此指定目录。

假设採取默认路径的话。可能会覆盖系统当前的gcc。

假设想保留旧的gcc,须要设置--prefix參数。

由于仅仅用到C。C++。故仅仅指定了这两种语言。mulitlib用于同一时候生成多个平台的代码。比方64 bit平台中。能够同一时候生产32 bit和64 bit两种格式。

make -j2       (本人机器为双核)



5. 安装

  make install



6. 验证

  gcc -v

编译程序时,可能须要加上-std=c++11或者-std=c++0x才干通过。

比如:  g++ 123.cpp -o 123 -std=c++11

RHEL6.4编译安装gcc4.8.1的更多相关文章

  1. CentOS下编译安装Gcc-4.9

    给公司测试服务器搭环境,手工安装gcc-4.9.0颇费功夫,记录如下. 1.安装gcc.g++,系统源默认安装版本为4.4.7: 2.安装依赖包GMP.MPFR.MPC,注意安装顺序: 3.修改动态库 ...

  2. linux(Centos)下编译安装gcc4.8.2

    欢迎转载.转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46811159 近期要用到c++ 11,所以没办法仅仅得把那台ce ...

  3. RHEL6.4编译安装企业级LAMMP平台

    一.LAMMP简介 二.使用软件及服务器架构说明 三.配置及安装过程    1.安装arp与httpd    2.安装mysql    3.安装php(php-fpm)    4.安装Xcache   ...

  4. CentOS 6.4下编译安装 gcc-4.8.0(转)

    转:http://www.centoscn.com/image-text/install/2014/0807/3454.html 1.首先下载源代码 wget http://ftp.gnu.org/g ...

  5. 重新编译安装gcc-4.1.2(gcc版本降级)之TFS安装

    wget http://gcc.parentingamerica.com/releases/gcc-4.1.2/gcc-4.1.2.tar.gz tar -zxfv gcc-4.1.2.tar.gz ...

  6. centos6 编译安装gcc4.8.2

    12 wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.gz 13 rm -r -f g ...

  7. Debian7安装GCC4.8

    参考一  参考二   参考三   参考四 Ubuntu13.04下编译GCC-4.8.2源码并安装成功 CentOS 6编译安装GCC4.8      CentOS 6.4系统编译安装gcc-4.8. ...

  8. 源码安装GCC-4.9.2

    本文参考:http://cuchadanfan.blog.51cto.com/9940284/1689556  感谢原作者的分享! 首先安装基础包,安装网络依赖的时候要用 [root@localhos ...

  9. CentOS编译安装GCC 4.9.2成功

    在Linux上编译安装gcc是个寻烦恼的活,对于像我这样习惯于在Windows上面使用二进制安装包的人来说,自已编译安装gcc是个相当大的挑战,今天直接挑战最新版的gcc,是4.9.2版本的,做之前查 ...

随机推荐

  1. HDOJ 2036

    错误代码: #include<stdio.h>#include<math.h>int main(){ int x[102],y[102]; int i,n; float s,a ...

  2. Composite 模式的实现

    实现要点: 1.组合模式采用树形结构来实现普遍存在的对象容器,从而将“一对多”的关系转化“一对一”的关系,使得客户代码可以一致地处理对象和对象容器,无需关心处理的是单个的对象,还是组合的对象容器. 2 ...

  3. js 之 复制一段代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. [翻译]jQuery十周年-John Resig

    10th Anniversary of jQuery Today marks the 10th anniversary of the release of jQuery...[原文] 今天是jQuer ...

  5. Android JSON 解析库的使用 - Gson 和 fast-json

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族 ...

  6. ASP.NET MVC 过滤器Filter

    在Asp.netMvc中当你有以下及类似以下需求时你可以使用Filter功能 判断登录与否或用户权限 决策输出缓存 防盗链 防蜘蛛 本地化与国际化设置 实现动态Action Filter是一种声明式编 ...

  7. sys.argv[]用法

    #-*- coding: utf-8 -*- """ sys.argv 用来获取命令行参数 sys.argv[0] 表示当前执行文件 "-k".sta ...

  8. bzoj2096: [Poi2010]Pilots

    Description Tz又耍畸形了!!他要当飞行员,他拿到了一个飞行员测试难度序列,他设定了一个难度差的最大值,在序列中他想找到一个最长的子串,任意两个难度差不会超过他设定的最大值.耍畸形一个人是 ...

  9. 转:2014年最酷的30个JavaScript库

    原文来自于:http://www.gbtags.com/gb/share/3701.htm 使用JavaScript库将会使开发变的更简单,大部分JavaScript库提供的功能都是极好的,当我们在为 ...

  10. 【译】iOS人性化界面指南(iOS Human Interface Guidelines)(一)

    1. 引言1.1 译者自述 我是一个表达能力一般的开发员,不管是书面表达,还是语言表达.在很早以前其实就有通过写博客锻炼这方面能力的想法,但水平有限实在没有什么拿得出手的东西分享.自2015年7月以来 ...