• CentOS 6.4 编译安装 gcc 4.8.1


    CentOS 6.4 编译安装 gcc 4.8.1

    今天在isocpp上看到“GCC 4.8.1 released, C++11 feature complete”这个消息,非常兴奋。终于有一个全面支持C++11语言特性的编译器了!

    当然了,gcc仅仅是语言特性上全面支持C++11,libstdc++貌似还没有完全跟上,不过我已经挺满足了,至少可以去尝试各种特性了。另外,之前也有消息说Clang功能上也100%支持C++11了,但是内部还在做测试,Clang3.3的release版据说6月5号正式发布,最近对于C++来说大事真多啊,很期待!

    今天下午看到这个消息,晚上就实在忍不住了,赶紧把最新的gcc下载下来编译安装起来,下面介绍下安装步骤:

    安装之前,还是提醒下大家:一些基本的准备工作我就不说了,比如得装个Linux(CentOS,Ubuntu等等),然后装上基本的编译环境,用较老的编译环境编译新的编译器,这叫自举(bootstrap。如果编译的过程,提示出错,就按照提示去把环境装好,不再详细说明。

    1、下载gcc 4.8.1源码包:

    http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.1/gcc-4.8.1.tar.bz2

    我是虚拟机里面装的Linux,我嫌wget太慢,所以自己在Windows上用迅雷下好,然后共享到Linux中。

    2、解压:

    tar -jxvf gcc-4.8.1.tar.bz2

    3、下载编译所需的依赖包:

    这个步骤有两种方式完成:

    a) 如果Linux有网络连接,直接这样:

    cd gcc-4.8.1

    ./contrib/download_prerequisites

    cd ..

    b) 如果Linux没有网络连接(我主机和虚拟机是Host-only,不能联网,所以另外想办法),则用Windows上网下载这几个包:

    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

    有人问,一定要下载几个版本吗?下载最新的版本行不行?我没试过,也不知道,我是按照gcc-4.8.1/contrib/download_prerequisites脚本里面的版本下载的。既然里面已经说了这几个版本,那我就严格按照它的要求来做。

    然后解压并移动到gcc-4.8.1下面:

    tar -xjf gmp-4.3.2.tar.bz2

    tar -xjf mpfr-2.4.2.tar.bz2

    tar -xzf mpc-0.8.1.tar.gz

    mv gmp-4.3.2 gcc-4.8.1/gmp

    mv mpfr-2.4.2 gcc-4.8.1/mpfr

    mv mpc-0.8.1 gcc-4.8.1/mpc

    这样的做法好处是,不用单独编译gmp、mpfr和mpc三个包,放在gcc源码下面一起编译(事实上这也是gcc-4.8.1/contrib/download_prerequisites脚本的做法,个人感觉更简洁些)。

    4、新建目录用于存放编译结果:

    mkdir gcc-build-4.8.1

    5、进入新目录,并执行configure命令,产生makefile:

    cd gcc-build-4.8.1

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

    具体选项不多解释,大家可以自己查看,我只用到c和c++,所以只编译这两种语言的编译器。

    6、编译:

    make -j4

    我是i5四核,所以开4个线程同时编译,要是有8核就更爽了~我在虚拟机里面花了30分钟不到的时间,不算太慢了。

    7、安装:

    sudo make install

    8、大功告成,检查版本:

    g++ --version

    g++ (GCC) 4.8.1
    Copyright (C) 2013 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    【参考文章】:

    http://rritw.com/a/caozuoxitong/OS/20130407/335815.html

    http://www.lainme.com/doku.php/blog/2012/06/%E5%9C%A8centos_5%E4%B8%8A%E7%BC%96%E8%AF%91gcc_4.7

    http://www.cnblogs.com/chuncn/archive/2010/10/15/1851853.html

    http://blog.csdn.net/bokee/article/details/5380044

  • 相关阅读:
    遇到的一道发散思维题C#
    SQLSERVER函数判断当天是星期几
    C# Web 获取客户端IP
    C# 月度进度条实现
    FileZilla Server的安装和设置
    SQL1428N 应用程序已与 "DB2" 连接,
    DB2客户端连接服务器
    IIS提示Execute Access Denied解决办法
    dom4j java.lang.NoClassDefFoundError: org/jaxen/JaxenException
    Oracle查看用户、用户权限、用户表空间、用户默认表空间
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3113319.html
Copyright © 2020-2023  润新知