GCC更新到4.8支持C++11的特性

1.1 获取安装包并解压linux


wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2ios

tar -jxvf gcc-4.8.2.tar.bz2c++


1.2 下载编译GCC所依赖的源码库,使用到一个特殊的脚本app


cd gcc-4.8.2 ide

./contrib/download_prerequisites 测试


将在./contrib目录下,下载三个源码库:ui

gmp-4.3.2 mpfr-2.4.2  mpc-0.8.1 线程


1.3 编译安装上述三个依赖库c++11

注意:没有安装到/usr/lib默认的系统目录,因此get

稍后编译GCC的时候,须要指定LIB库目录,使用指令以下:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.3.2/lib:/usr/local/mpfr-2.4.2/lib 


./configure --prefix=/usr/local/gmp-4.3.2

make 

make install


./configure  --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2/

make 

make install


./configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2/  --with-

mpfr=/usr/local/mpfr-2.4.2/

make 

make install



1.4 创建一个目录供编译出的文件存放


mkdir gcc-build-4.8.2

cd gcc-build-4.8.2


1.5开始编译GCC


指定依赖库的路径

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-

4.3.2/lib:/usr/local/mpfr-2.4.2/lib 


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

with-gmp=/usr/local/gmp-4.3.2/  --with-mpfr=/usr/local/mpfr-2.4.2/ --with-

mpc=/usr/local/mpc-0.8.1/


make 

make install



1.6 测试版本

gcc -v

使用内建 specs。

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.8.2/lto-wrapper

目标:i686-pc-linux-gnu

配置为:../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib 


--with-gmp=/usr/local/gmp-4.3.2/ --with-mpfr=/usr/local/mpfr-2.4.2/ --with-


mpc=/usr/local/mpc-0.8.1/

线程模型:posix

gcc 版本 4.8.2 (GCC) 


1.7例子编译

#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 test.cpp 

/usr/local/libexec/gcc/i686-pc-linux-gnu/4.8.2/cc1plus: error while loading shared 


libraries: libmpc.so.2: cannot open shared object file: No such file or directory


缘由libmpc.so.2并无安装到/usr/lib系统库目录,而是安装在/usr/local/mpc-0.8.1目录下,

因此须要执行以下的命令:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-


4.3.2/lib:/usr/local/mpfr-2.4.2/lib 

相关文章
相关标签/搜索