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 

相關文章
相關標籤/搜索