因为平时用的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. SGU 132.Another Chocolate Maniac

    时间限制:0.25s 空间限制:4M 题目: Bob非常喜欢巧克力,吃再多也觉得不够.当他的父母告诉他将要买很多矩形巧克力片为他庆祝生日时,他的喜悦是能被理解的.巧克力都是 2x1 或 1x2 的矩形 ...

  2. alsa utils工具使用

    1.amixer用于控制设置 amixer [-c card] [cmd] ./amixer contents ./amixer cset ./amixer cget 2. aplay ./aplay ...

  3. JavaScript 获取当月天数

    getDate() 方法可返回月份的某一天.取值范围是1~31 如果是0的话,就返回最后一天.这样就能取得当月的天数了 比如获取16年2月份的天数 var day = new Date(2016,2, ...

  4. js创建对象的三种方法:文本标识法和构造器函数法和返回对象的函数

    文本标识法和定义变量差不多,像这样 var obj = {name:'HanMM','2':'Dali'}; 函数构造器法  先创建一个对象函数 function Obj() { this.addre ...

  5. 你知道HTML标签设计的本意吗? 把HTML标签用到该用的地方去

    "DIV+CSS"这个词汇不知道害了多少人,也许其提出者本意并没有错,但是跟风者从表现曲解了其意思,认为整个页面就应当是DIV+CSS文件的组合.这样做,对于视觉上并没有什么影响, ...

  6. YII 集成jquery

  7. jQuery height()、innerHeight()、outerHeight()函数的区别

    参考: http://www.365mini.com/tech 函数 高度范围 jQuery版本 支持写操作 height() height 1.0+ 1.0+ innerHeight() heigh ...

  8. pkg-config相关的常用指令

    pkg-config用途: 查询系统已安装库的基础信息(元信息) 1.查看所有的pkg-config库 pkg-config --list-all --list-all  列出pkg-config路径 ...

  9. 常用Firefox扩展

    最近思维混乱,无心做事,故整理下东西.(PS:有些是firefox自带的.) 1.标签页管理器 2.1.41 用途:在新标签页打开书签.历史.地址.搜索. 主页:http://www.firefox. ...

  10. uboot总结:uboot配置和启动过程2(mkconfig分析)

    说明:文件位置:在uboot的目录下,文件名为:mkconfig.本身是一个脚本文件. 它的主要作用的是: (1)创建一个重要的符号链接 (2)创建一个config.mk文件(在include目录下) ...