最近尝试了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. python语句

    print语句 print函数中使用逗号输出多个表达式,打印的结果之间使用空格隔开. >>> ') name: zyj age: 24 >>> print(1,2, ...

  2. Jackson学习资料

    Jackson JSON Processor Wiki Documentation for the Jackson JSON processor Jackson Tutorial by StudyTr ...

  3. 指针与数组的区别 —— 《C语言深度剖析》读书心得

    原书很多已经写的很清楚很精炼了,我也无谓做无意义的搬运,仅把一些基础和一些我自己以前容易搞混的地方写一下. 1. 意义: 指针: 指针也是一种类型,长度为4字节,其存放的内容只能是一个地址(4字节). ...

  4. C# TransactionScope 使用

    注意: Windows 服务中,开启Distributed Transaction Coordinator 服务. using (var scope = new TransactionScope()) ...

  5. 给备战NOIP 2014 的战友们的10条建议

    应老胡要求,要写10条建议= = begin 1. 注意文件关联 比如 halt 前要close(input); close(output); 还有就是一定要打这两句话= = 2. 快排,大家都懂得. ...

  6. PDMS模型导出RVM格式

    2 .将PDMS中对象模型导出为RVM格式的宏文件代码如下: eg:如果要导出某几个房间内的全部bran equi !strus = array()!strus.append(|/1RXR246ZL| ...

  7. NorthWind 数据库整体关系

    http://blog.csdn.net/bergn/article/details/1502150 今天看到一张非常有用的图,说明有关Northwind数据库整体关系的图,以前一直在用,但是没有一个 ...

  8. C# 的一些语法特性

    1.? -NullableC# 里像int,bool,double 这样的struct和enum类型都不能为null.如果确实想在值域上加上null的话,Nullable就派上用场了.T?是Nulla ...

  9. 远程连接服务器for Linux

    远程连接Linux云服务器-命令行模式 1.远程连接工具.目前Linux远程连接工具有很多种,您可以选择顺手的工具使用.下面使用的是名为Putty的Linux远程连接工具.该工具是免费的,且不需要安装 ...

  10. php面试题

    1.用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分) <?php date_default_timezone_set('Asia/shanghai'); echo d ...