CentOS6.3升級GCC到GCC4.8.2

服務器上安裝的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",參數這樣寫沒錯的,後面的--with指定gcc依賴包的路徑)

--enable-threads=posix//可用線程

-disable-checking//禁用檢查

--disable-multilib//默認gcc 能在32位系統上將代碼編譯成64位程序,或者在64位系統上編譯成32位程序,如果加上這個編譯選項則表示關閉這個gcc的交叉編譯功能。

--enable-languages //指定 gcc 能編譯哪些語言的文件,每種語言用逗號分隔, 例如 c,c++,java

詳細的參數介紹可以在官網看到:https://gcc.gnu.org/install/configure.html

$如果此時執行"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個,這裏沒有記錄,因爲沒有原圖,說服力不夠,而且記錄比較麻煩,所以如果你在安裝過程中遇到什麼問題,仔細看看錯誤提示,谷歌一下,就很容易解決,當然特別歡迎你留言,很樂意幫你解決。關於自安裝GCC的使用歡迎您閱讀下一篇博文,MonaServer的安裝使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章