操作系统CentOS6.6 64bit上gcc原版本4.4.7,不能支持C++11的特性~,为了便于YouCompleteMe插件,我希望升级到4.8.2。不能通过yum的方法升级,需要自己手动下载安装包并编译,下面假定都是以root用户安装。

一、升级过程

1.获取gcc安装包并解压

gcc官网http://ftp.gnu.org/gnu/gcc里面有所有的gcc版本供下载,最新版本为5.3.0

这里我们暂保守选择安装gcc 4.8.2
wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz
tar -zxvf gcc-4.8.2.tar.gz
2.下载供编译需求的依赖项
这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力,我们可以直接打开其源码看看。
它会下载指定的源码包并做软连接。
cd gcc-4.8.2 
./contrib/download_prerequisites 
下面需要依次从源码安装这几个依赖库
gmp,mpfr,mpc

3.建立一个目录供编译出的文件存放
mkdir gcc-build-4.8.2
cd gcc-build-4.8.2
4. 生成Makefile文件
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
5.编译
make -j4
注意:此步骤非常耗时,普通PC花费半小时不稀奇,我的高配电脑只用了10分钟左右
6.安装
sudo make install
7.切换GCC到新版
确定新安装的GCC的路径,一般默认在/usr/local/bin下。可以先updatedb,然后再输入

ls /usr/local/bin | grep gcc

查找。添加新GCC到可选项,倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级,设大一些之后就自动使用新版了
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-unknown-linux-gnu-gcc 40

8.确认当前版本已经切换为新版
gcc -v
g++ -v
注意需要重新打开终端才能生效。
 
二、验证安装
尝试写一个C++11特性的程序段 tryCpp11.cc,使用了shared_ptr
//tryCpp11.cc
#include <iostream>
#include <memory>
int main()
{
    std::shared_ptr<int> pInt(new int(5));
    std::cout << *pInt << std::endl;
    return 0;
}
 
验证文件:
g++ -std=c++11 -o tryCpp11 tryCpp11.cc
./tryCpp11

三、安装中遇到的问题澄清
1.是否需要手动安装依赖库?
不需要,程序会内部自动处理,手动安装反而后出错。
2.安装动态库后,是否需要更新动态库?
更不需要修改并更新/etc/ld.so.conf文件之类的
3.如果编译错误,不要make distclean之类的,直接重新解压源码再来一遍
4.编译过程中出现错误
configure: error: cannot compute suffix of object files: cannot compile
这是找不到依赖库的位置

四、参考文献
[1].http://www.linuxidc.com/Linux/2015-01/112595.htm   4.8.3版本
[2].http://blog.csdn.net/szq123456123/article/details/45170923   4.9.2版本
[3].http://www.mamicode.com/info-detail-550954.html  对排错很有参考
[4].http://www.cnblogs.com/peterpanzsy/archive/2013/04/10/3006838.html 对排错很有帮助,推荐

在CentOS 6.6 64bit上升级GCC到4.8.2版本相关推荐

  1. CentOS 6.3 64bit上升级系统默认Python 2.6.6到2.7.10版本

    从官网下载python 2.7的当前最新版本源码 wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz tar zxvf Py ...

  2. 在CentOS 6.3 64bit上如何从源码生成rpm包?

    具体例子参见<鸟哥私房菜>23.3.5中的例子,非常详细和经典! 下面是在CentOS 6.6 64bit上面的实操记录 首先查询本机是否有安装rpmbuild命令? whereis rp ...

  3. 在CentOS 6.6 64bit上基于源码安装全功能的vim 7.4实录

    CentOS 6.6 64bit上默认的vim版本是7.2 minimal,通过下面的命令查看 yum list installed | grep vim 我打算将其卸载并重新安装官网最新版vim 7 ...

  4. 在CentOS 6.6 64bit上为vim 7.4安装并配置vim-airline插件

    在CentOS 6.6 64bit上我使用Vundle来管理vim 7.4的所有插件.为了安装vim-airline插件,只需要在 ~/.vimrc 中添加一行 Plugin 'bling/vim-a ...

  5. 在CentOS 6.3 64bit上安装FTP服务器vsftpd 2.2.2

    vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用.并且是一个完全免费开放源码的ftp软件 根据业务需要,要求支持ftp和sftp,我需要在Linux上架设一个 ...

  6. 在CentOS 6.6 64bit上安装Python 3.5.0

    python 3在官网的最新版本是3.5.0,下面是我在CentOS 6.6 64bit上的安装过程实操: 1.下载python 3源码 # cd /usr/local/src/ # wget htt ...

  7. Ubuntu 12.04 64bit或者CentOS 6.3 64bit上搭建OpenRTMFP/Cumulus服务器

    Ubuntu 12.04 64bit或者CentOS 6.3 64bit上搭建OpenRTMFP/Cumulus服务器 2013-12-25 1.从官网下载源码包 cd ~/progrom_devel ...

  8. 在Ubuntu 14.04 64bit上升级安装ATS 5.3.2/6.1.1实录

    原由 在开发过程中,意外发现下面的TS API接口在ats 4.1.2上没有定义,但在5.3.x中有定义 bool cacheable = TSHttpTxnIsCacheable(txnp, NUL ...

  9. 在CentOS 6.6 64bit上安装Oracle VirtualBox 5.0.12

    VirtualBox是一款开源虚拟机软件(类似vmware).VirtualBox是由德国Innotek公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在Sun被Oracle ...

最新文章

  1. 第一讲SQL命令的DDL和DML操作讲解
  2. matlab 线模式密度,环形腔窄线宽光纤激光器的研究
  3. table中嵌套table,如何用jquery来控制奇偶行颜色
  4. 火星直播?一种可以给中国火星探测工程当云监工的方法
  5. 递归删除父节点及所有子节点(转)
  6. MariaDB的二进制包安装方法
  7. java author 认证_详解Java后端优雅验证参数合法性
  8. 本地gradle使用
  9. Android 系统(89)---ART
  10. unef螺纹_PT螺纹,NPT螺纹,G螺纹,公制螺纹的区别
  11. 宇宙第一 IDE 发布新版了
  12. 被错误理解的人工神经网络(一)!
  13. 调用ajax,返回json, 报异常 java.lang.OutOfMemoryError: Java heap space
  14. Java常用的设计模式
  15. uni-app 在mac电脑连接安卓手机进行真机调试
  16. 企业中如何做好文化建设?
  17. tensorflow中sparse_placeholder在saved_model中保存pb模型的使用方法
  18. “智慧高速公路”建设应重点提升“智慧化的出行服务”
  19. Java课程设计项目 客户信息管理软件 客户信息管理系统的实现
  20. 【源码】声明32位和64位Access、Excel等VBA兼容的API函数的方法

热门文章

  1. 计算机房一般在办公楼建设吗,写字楼大厦机房建设技术方案.doc
  2. css样式之边框和内外边距
  3. ThinkPHP基础概念
  4. [导入]Learning.ASP.NET 2.0.with.AJAX.pdf(14.14 MB)
  5. php日期选择插件,优雅的日期选择插件daterangepicker
  6. c语言使能,什么是锁存使能输入
  7. 李白打酒c语言编程,搞定了“李白打酒”,还原问题都迎刃而解
  8. 的内怎么放_冰箱不是“万能”箱,哪些食物不宜放冰箱储存?
  9. linux php环境升级,php5.6升级到php7.1.10(Linux环境)
  10. 独立服务器和虚拟服务器的区别,BlueHost虚拟主机与独立服务器的主要区别