最近尝试了fedora、ubuntu、mint、debian、opensuse等多种linux发行版,与CentOS比较之后还是感觉之前用的CentOS比较熟悉,比较习惯。现在CentOS的最新版本为CentOS7,由于实验室的电脑比较老,上这个64位的系统有点卡,所以只能退而求其次,用这个CentOS6.6了。。。

CentOS自带的gcc工具版本为4.4.7,这和CentOS6用的linux内核一样,都是属于古董级别的版本了。这个版本对c++11的支持并不友好,就萌生了升级gcc的想法,但是用yum update gcc却检测不到新版本的gcc。想用高版本的gcc,又没条件升级系统,无奈之下,只能选择在老版本上手动编译安装最新版本的gcc了。

1.首先,从下面网站中下载想要安装的gcc:

http://ftp.gnu.org/gnu/gcc/

现在最新的gcc版本为gcc-5.3,鉴于习惯,还是不太喜欢最新版本的软件,就下载了gcc-4.9.3。

2.解压该文件:tar xjvf gcc-4.9.3.tar.bz2

3.进入解压完成的目录,执行如下命令:

./contrib/download_prerequisites

由于新版本的gcc需要更新的各种依赖库和配置,如果手动挨个下载实在麻烦,而且还可能遇到很多问题,所以gcc开发者为我们提供了这么一个配置脚本,只要执行,就可以自动下载需要的文件了。可以vim一下该文件内容,主要就是下载各种依赖包。

4.为了存放编译期间产生的中间文件,我们建立一个文件夹存放这些文件,执行命令:

mkdir gcc-build-4.9.3

5.进入该文件夹,执行如下命令,来产生makefile文件:

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

注意最开始是 ../ 而不是 ./ !

6.命令完成后,就可以编译新版本的gcc了,执行make命令,等待即可,该过程根据不同机器配置,等待的时间也不一样,在我的电脑上运行了接近 2 个小时之久。。。。。。。

如果电脑是多核电脑,想要提高编译速度,可以执行make -jx。其中的x为你cpu的核数。但是这样执行有可能会产生错误,如果产生了错误,就直接make吧。。。

7.编译完成,就可以安装了,执行 make install 命令,等待安装完成

8.安装完成后,重启,gcc -v 查看版本,就发现新的gcc生效了。写一个小程序验证一下,如果程序中调用了c++11特性,编译时需要加入选项:

g++ -std=c++11 test.cpp -o test

CentOS手动编译安装gcc的更多相关文章

  1. 转:在CentOS下编译安装GCC

    转:https://teddysun.com/432.html 在CentOS下编译安装GCC 技术  秋水逸冰  发布于: 2015-09-02  更新于: 2015-09-02  6519 次围观 ...

  2. centos手动编译安装apache、php、mysql

    64位centos 5.5手动安装lamp,要求curl.json.pdo_mysql.gd,记录如下. centos 5.4.5.5.5.6的内核都是2.6.18,都可以安装php 5.3. 卸载旧 ...

  3. Centos手动编译安装vim8

    系统:CentOs6.9 gcc版本:5.1.0 github上拉取vim工程之后,cd src,执行一下命令: $ ./configure $ sudo make gcc -c -I. -Iprot ...

  4. 如何在Linux下手动编译安装gcc

    如果可以通过apt来安装的话,尽量不要手工编译了,手工编译是最后的选择.用apt安装,只需要输入一条命令: sudo apt-get install gcc 手工编译的话,gcc和其他软件包存在如下的 ...

  5. CentOS6.5升级手动安装GCC4.8.2 与 CentOS 6.4 编译安装 gcc 4.8.1

    http://blog.163.com/zhu329599788@126/blog/static/6669335020161179259975 http://www.cnblogs.com/codem ...

  6. 在CentOS 6.4中编译安装gcc 4.8.1

    在CentOS 6.4中编译安装gcc 4.8.1 分类: C/C++ Linux/Unix2013-11-28 21:02 1877人阅读 评论(0) 收藏 举报 原文链接:http://www.c ...

  7. CentOS 6.4中升级编译安装GCC 4.8.1 + GDB 7.6.1 + Eclipse 以及Kdump配置

    在CentOS 6.4中编译安装GCC 4.8.1 + GDB 7.6.1 + Eclipse 今天在isocpp上看到"GCC 4.8.1 released, C++11 feature ...

  8. CentOS编译安装GCC 4.9.2成功

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

  9. LNAMP服务器环境搭建(手动编译安装)

    LNAMP服务器环境搭建(手动编译安装) 一.准备材料 阿里云主机一台,操作系统CentOS 6.5 64位 lnamp.zip包(包含搭建环境所需要的所有软件) http://123.56.144. ...

随机推荐

  1. iOS 循环引用

    1.循环引用一般是指:A持有B,B同时持有A,从而导致死循环无法释放对象. 2.一般循环引用出现在block和delegate中,而一般解决方法就是将self变成weakSelf(强引用变成弱引用), ...

  2. Spring boot 学习记录

    java的三种配置方式 基于xml的配置 基于注解的配置 基于java的配置 Spring boot推荐的配置方式:java配置+注解配置 一.注解 SpringBootApplication :等价 ...

  3. reg

    <div class="login-module"> <div class="wide c login"> <form id=&q ...

  4. C# String 前面不足位数补零的方法

    int i=10;方法1:Console.WriteLine(i.ToString("D5"));方法2:Console.WriteLine(i.ToString().PadLef ...

  5. completionService

    我们现在在Java中使用多线程通常不会直接用Thread对象了,而是会用到java.util.concurrent包下的ExecutorService类来初始化一个线程池供我们使用. 当我们使用Exe ...

  6. 函数式中的 currying

    currying 是函数式语言中经常遇到的一个概念,翻译成 柯里化,不是库里化. currying 指的是将接收多个参数的函数变换成接收一个单一参数,并且返回接收余下的参数而且返回结果的新函数的技术. ...

  7. 基于apache的tomcat负载均衡和集群配置session共享

    接上面的话题接着继续完善.为什么没接到上篇呢?原因很简单太长的文章不爱看!就像有人写了上千行的方法一样,不是逼得没办法谁爱看谁看,反正我不看. 期间我没有一次配置成功,从失败的开始说起, 1.准备ja ...

  8. 使用 Swift 在 iOS 10 中集成 Siri —— SiriKit 教程

    下载 Xcode 8,配置 iOS 10 和 Swift 3 (可选)通过命令行编译 除 非你想使用命令行编译,使用 Swift 3.0 的工具链并不需要对项目做任何改变.如果你想的话,打开 Xcod ...

  9. 给Source Insight做个外挂系列之二--将本地代码注入到Source Insight进程

    上一篇文章介绍了如何发现正在运行的“Source Insight”窗口,本篇将介绍“TabSiPlus”是如何进行代码注入的.Windows 9x以后的Windows操作系统都对进程空间进行了严格的保 ...

  10. Nginx配置加入css缓存配置后,css等文件not found

    现在配置: location / { root /root/html/product; } Probably another block had definition for the static f ...