一、简易安装

操作环境 CentOS6.5 64bit,原版本4.4.7,不能支持C++11的特性~,希望升级到4.8.2

不能通过yum的方法升级,需要自己手动下载安装包并编译

1.1 获取安装包并解压

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2
tar -jxvf gcc-4.8..tar.bz2

当然,http://ftp.gnu.org/gnu/gcc 里面有所有的gcc版本供下载,最新版本已经有4.9.2啦.

1.2 下载供编译需求的依赖项

参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。

cd gcc-4.8. 
./contrib/download_prerequisites 

1.3 建立一个目录供编译出的文件存放

mkdir gcc-build-4.8.
cd gcc-build-4.8.

1.4 生成Makefile文件

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

1.5 编译(注意:此步骤非常耗时)

make -j4

-j4选项是make对多核处理器的优化,如果不成功请使用 make,相关优化选项可以移步至参考文献[2]。

我在安装此步骤时候出错,错误描述:

compilation terminated.
make[]: *** [_gcov_merge_add.o] 错误
make[]: Leaving directory `/home/imdb/gcc-4.8./gcc-build-4.8./x86_64-unknown-linux-gnu//libgcc'
make[]: *** [multi-do] 错误
make[]: Leaving directory `/home/imdb/gcc-4.8./gcc-build-4.8./x86_64-unknown-linux-gnu/libgcc'
make[]: *** [all-multi] 错误
make[]: *** 正在等待未完成的任务....
make[]: Leaving directory `/home/imdb/gcc-4.8./gcc-build-4.8./x86_64-unknown-linux-gnu/libgcc'
make[]: *** [all-stage1-target-libgcc] 错误
make[]: Leaving directory `/home/imdb/gcc-4.8./gcc-build-4.8.'
make[]: *** [stage1-bubble] 错误
make[]: Leaving directory `/home/imdb/gcc-4.8./gcc-build-4.8.'
make: *** [all] 错误

大概看看,错误集中在 x86_64unknown-linux-gnu/32/libgcc 和 x86_64-unknown-linux-gnu/libgcc

根据参考文献[3],安装如下两个软件包(仅用于CentOS6.X):

sudo yum -y install glibc-devel.i686 glibc-devel

过程中CPU基本满载:

1.6、安装

sudo make install

二、验证安装

重启,然后查看gcc版本:

gcc -v

尝试写一个C++11特性的程序段 tryCpp11.cc,使用了shared_ptr

 //tryCpp11.cc
#include <iostream>
#include <memory> int main()
{
std::shared_ptr<int> pInt(new int());
std::cout << *pInt << std::endl;
return ;
}

验证文件:

g++ -std=c++ -o tryCpp11 tryCpp11.cc
./tryCpp11

三、其他安装:

- 在Ubuntu机器上安装:参考文献[3]

- 非简易安装:参考文献[4]

- 多个gcc版本共存问题:暂无

四、参考文献

[1] 参考的主要安装步骤 http://www.cnblogs.com/ytjjyy/p/4008096.html

  注:这篇文章的后半部分解决动态库的方法非常有用处

[2] make -j4的讨论 http://stackoverflow.com/questions/15289250/make-j4-or-j8

[3] libgcc报错 http://argcv.com/articles/2946.c/comment-page-1

  注:这篇文章提供了Ubuntu12.04上gcc4.7的安装方法

[4]非简易安装 http://my.oschina.net/u/728245/blog/184550    另一个:图文版本

最新文章

  1. Android—实现自定义相机倒计时拍照
  2. 分享给大家的CSS书写规范、顺序
  3. reactjs学习一(环境搭配react+es6+webpack热部署)
  4. 设计模式:模版模式(Template Pattern)-转
  5. 用SPCOMM 在 Delphi中实现串口通讯 转
  6. Android——ProgressDialog 进度条对话框
  7. MySql安装时在Start Service处失败
  8. Matlab编程实例(1) 移动平均
  9. javascript 笔记(待续)
  10. PAT-乙级-1012. 数字分类 (20)
  11. 绘图quartz之加水印
  12. android Fragment 用法小结
  13. 禅道SQA
  14. Codeforces Round #545 (Div. 2)-Camp Schedule
  15. jenkins配置自动发送邮件,抄送
  16. [转] 为什么javascript是单线程的却能让AJAX异步调用?
  17. 2019.01.02 洛谷P4512 【模板】多项式除法
  18. crm操作产品实体
  19. Centos下安装gcc
  20. sencha touch 2.3.1 list emptyText不显示

热门文章

  1. VC6.0常见编译错误提示
  2. C中存储类、链接和内存管理
  3. JS实现滚动条滚到页面距离底部300px时执行事件的方法
  4. 基于MFC的Opengl实现动画
  5. vb.net详解MDI窗体操作方法
  6. seajs第二节,seajs各模块依赖关系
  7. jquery插件开发规范
  8. C#中XML与对象之间的序列化、反序列化
  9. [转]关于position 的 static、relative、absolute、fixed、inherit
  10. Kinect For Windows V2开发日志三:简单的深度读取