Ubuntu下gcc的版本編譯

Ubuntu已經內置了gcc的安裝。但在不少時候,因爲須要特定版本的gcc,那麼須要本身安裝。c++

可是在安裝gcc4.9的時候,自動安裝了最新的版本,而我想要用4.9.2版原本進行編譯和驗證,卻沒法安裝上,只好本身進行源碼的編譯。shell

一、下載

從這裏http://ftp.gnu.org/gnu 能夠下載最新的gcc版本,還須要同時下載gmp/mpc/mpfr,注意必定要是對應的版本,保險起見,選擇gcc編譯式提示的最低版本便可,版本過高有可能引發其它的問題。緩存

使用gcc源碼目錄下的./contrib/download_prerequisites進行下載,可保證版本的一致性,推薦使用。

二、編譯

採用下面的步驟進行編譯:多線程

tar -vxf  gcc-4.9.3.tar.bz2
cd gcc-4.9.3
./contrib/download_prerequisites
#腳本本身主動下載依賴包 gmp, mpfr,mpc。 
#也可以手動下載而後移到/gcc-4.9.0文件夾如下本身主動一塊兒安裝,或者自行先編譯安裝
./configure
sudo make install

編譯完了後,使用gcc -v檢查一下安裝的版本。ui

2.1 在獨立的目錄中編譯

運行configure命令,產生makefile。spa

先建立build文件夾,編譯到此文件夾下:.net

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

2.2 多線程編譯

gcc的編譯時間比較長,在多核機器能夠啓用多線程。虛擬機中,建議預先增長CPU的數量與線程數一致。
線程

make -j4

4表示線程數,時間比較長,用多個線程更快code

三、安裝

sudo make install

若是之前編譯過,部分連接庫緩存可能版本較老。爲了清除之前的遺留文件,能夠先運行make clean。blog


四、使用

若是須要在多個gcc版本間切換,參考:http://my.oschina.net/u/2306127/blog/538139

可是,這種方法只能切換gcc編譯器,所涉及到的引用庫如libgomp等不會切換,致使出現undefined symbol之類的錯誤。

在Ubuntu14.04,缺省編譯的gcc位於/usr/local/lib64目錄下,經過設定載入庫的目錄便可解決這個問題:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64

若是放在啓動的sh腳本中,該設置只在當前運行環境下有效,從而能夠避免其餘程序之間的相互干擾。

相關文章
相關標籤/搜索