標籤:gcc gcc4.8.2 ld_library_path linux monaserver
伺服器上安裝的GCC版本過舊,不足以滿足個人使用的版本需求,故決定對其進行升級操作,由目前的版本3.4.6升級到4.8.2,受許可權制約,只能安裝到個人指定目錄,因此如果您的伺服器可以串連外網,並且有root或者sudo許可權的話,可以使用自助安裝服務,您可以跳過本文,節省寶貴時間吧。
所謂“工欲善其事必先利其器”,在許可權受限,並不能串連外網的情況下,操作Linux的安裝著實蛋疼,可沒辦法,麻煩歸麻煩,結果是好的。
準備好GCC的壓縮包gcc-4.8.2.tar.gz(105MB左右)後不再囉嗦,進入主題:
1、查看系統內容和gcc版本,執行命令:
$lsb_realease -a
$gcc -v
2、解壓gcc-4.8.2.tar.gz到目前的目錄下
$tar -zvxf gcc-4.8.2.tar.gz
3、進入gcc目錄,查看編譯需要的依賴檔案
$cd gcc-4.8.2/
$vim ./contrib/download_prerequisites
4、根據上述地址,分別下載mpfr/gmp/mpc三個檔案,並解壓安裝。由於mpc依賴於mpfr和gmp,mpfr依賴於gmp,故安裝順序依次為gmp、mpfr、mpc。
gmp-4.3.2.tar.bz2
mpfr-2.4.2.tar.bz2
mpc-0.8.1.tar.gz
5、編譯安裝gmp
$tar -jvxf ~/gmp-4.3.2.tar.bz2
$cd gmp-4.3.2
$./configure --prefix=~/gcclib/gmp432(自訂配置路徑)
$make && make install
6、編譯安裝mpfr
$tar -jxvf ~/mpfr-2.4.2.tar.bz2
$cd mpfr-2.4.2/
$./configure --prefix=~/gcclib/mpfr242 --with-gmp=~/gcclib/gmp432/ (依賴於gmp)
$make && make install
7、編譯安裝mpc
$tar -zxvf ~/mpc-0.8.1.tar.gz
$cd mpc-0.8.1/
$./configure --prefix=~/gcclib/mpc081 --with-gmp=~/gcclib/gmp432/ --with-mpfr=~/gcclib/mpfr242/ (依賴於gmp與mpfr)
$make && make install
8、編譯安裝gcc
$tar -zvxf ~/gcc-4.8.2.tar.gz
$cd gcc-4.8.2
$./configure --prefix=~/gcc482 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=~/gcclib/gmp432/ --with-mpfr=~/gcclib/mpfr242/ --with-mpc=~/gcclib/mpc081/(注意千萬不要拼字錯誤,我在這吃了很多虧,導致浪費很多時間,拼字錯誤,會報各種錯誤,然後解決掉還有,反反覆複,最終發現自己參數寫錯了,如"multilib"誤寫成"mutilib",--enable與--disable的參數你就按照我這樣寫,沒錯,後面的--with指定你自己的路徑)
$如果你覺得此時你可以在執行"make"命令的話,那你會相當的痛苦,預設安裝的話,所有的lib共用庫都會被放到系統目錄下如64位的/usr/lib64/,而我們手動指定目錄的形式,系統在編譯構建的時候是找不到的,就是說GCC找不到之前我們安裝的三個lib庫,so我們這樣做,即使沒許可權的話,可以建立全域的臨時路徑。
$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/gcclib/gmp432/lib:~/gcclib/mpfr242/lib:~/gcclib/mpc081/lib(保證原有的參數正確,加上新的共用路徑,用冒號分隔)
$make(別傻等在螢幕前,聽哥一句勸,這個過程的時間你可以欣賞一Hollywood大片啦,至少1.5小時,當然如果你的伺服器牛逼的不行超級快請忽略)
$make install
$~/gcc482/bin/gcc -v (查看安裝版本,驗證是否安裝成功)
9、Complete!
在安裝過程中,遇到的奇葩問題不少於10個,這裡沒有記錄,因為沒有原圖,說服力不夠,而且記錄比較麻煩,所以如果你在安裝過程中遇到什麼問題,仔細看看錯誤提示,Google一下,就很容易解決,當然特別歡迎你留言,很樂意幫你解決。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
CentOS升級GCC到GCC4.8.2