linux下升级GCC 4.8

来源:互联网 发布:碳纤维前景 知乎 编辑:程序博客网 时间:2024/04/30 01:11

       C++11标准在2011年8月份获得一致通过,这是自1998年后C++语言第一次大修订,对C++语言进行了改进和扩充。随后各编译器厂商都各自实现或部分实现了C++中的特性


  本文主要介绍在Linux系统下,如何升级GCC以支持C++11。目前来看GCC是对C++11支持程度最高最多的编译器,但需要GCC4.8及以上版本。


  本文使用操作系统:Centos 6.4 Desktop,64bit;


  原GCC版本:4.4.7;


  目标:升级GCC到4.8.2,以支持C++11。


  获取GCC 4.8.2包:wget http://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz;


  解压缩:tar -xf gcc-4.8.2.tar.gz;


  进入到目录gcc-4.8.2,运行:./contrib/download_prerequisites。这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。


  建立输出目录并到目录里:mkdir gcc-build-4.8.2;cd gcc-build-4.8.2;

  ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib。--enable-languages表示你要让你的gcc支持那些语言,--disable-multilib不生成编译为其他平台可执行代码的交叉编译器。--disable-checking生成的编译器在编译过程中不做额外检查,也可以使用--enable-checking=xxx来增加一些检查;


  编译:make;注意此步和上一步,比较耗时;


  安装:make install;


  验证:gcc -v;或者g++ -v,如果显示的gcc版本仍是以前的版本,就需要重启系统;或者可以查看gcc的安装位置:which gcc;然后在查看版本 /usr/local/bin/gcc -v,通常gcc都安装在该处位置,如果显示为;


 

  则表示已经升级成功。



       安装过程中遇到一些问题:

       1、Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0

         先在官网上下载最新版的对应三个文件:

         ftp://ftp.gnu.org/gnu/gmp/gmp-6.1.0.tar.bz2

         ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz

         ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.3.tar.gz


         先开始安装GMP。解压GMP的压缩包后,得到源代码目录gmp-6.1.0。在该目录的同级目录下建立一个临时的编译目录,这里命名为temp。然后开始配置安装选项,进入temp目录,输入以下命令进行配置:
  ../gmp-gmp-6.1.0/configure --prefix=/usr/local/gmp-6.1.0
     make
     sudo make install
     mpfr和mpc的安装方法与gmp类似。不过要注意配置的时候要把gmp与mpfr的依赖关系选项加进去,具体配置命令如下:
  ../mpfr-3.1.3/configure --prefix=/usr/local/mpfr-3.1.3 --with-gmp=/usr/local/gmp-gmp-6.1.0
  ../mpc-1.0.3/configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.3
  安装好这三个库之后,就可以正式开始安装gcc了。  
 当然了链接的时候,需要刚刚编译的3个lib。
     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-1.0.3/lib:/usr/local/gmp-6.1.0/lib:/usr/local/mpfr-1.0.3/lib 


     然后是典型的configure,make,install三步曲。
     ../trunk/configure --prefix=/usr/local/gcc-4.7 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --with-mpc=/usr/local/mpc-0.9
      make
      make check(可选)
      sudo make install
     经过漫长的等待:

0 0