眾所周知:CentOS雖然好用,但是它自己的yum源很小也比較滯後,安裝工具往往需要自己下載源碼編譯。(貌似RedHat和Fedora的源中el版本一致的rpm也可以用,但是沒有試過)
其他工具慢一點也就算了,最讓人不能認的就是它的gcc版本居然也這麼滯後,到現在(2012-12-21)最新的CentOS版本是6.3,官方源上最新的gcc版本是4.4.6。而現在gcc的最新穩定版本是4.7.2,開發版已經到了4.8。
瞭解c++的朋友都知道,這段版本升級的時間正是各種編譯器們想c++11標準飛速靠近的時期,也是越來越多的人來時使用c++11特性的時期,因此升級一個功能更完善的gcc實在不行。
好了,重要性談完了,下面開始談正事。
相關閱讀:
VMware虛擬機器安裝CentOS 6.3 見 http://www.linuxidc.com/Linux/2012-12/76583.htm
樓主的環境是CentOS 6.3版,使用預設的gcc 4.4.6,編譯安裝gcc 4.7.2。
網上關於升級編譯gcc的教程中步驟很多也很繁瑣,慘痛的過程我就不說了,我只說一點,其實事情可以很簡單。
首先是依賴的庫,官方文檔說需要gmp、mpc、mpfr,並且提供了下載地址,很多教程都說了自己編譯安裝,以及這一過程中的一些問題,其實完全不必這麼麻煩。難道大家就沒有想過gcc作為一個發展多年且很成熟的項目,難道就沒有提供一些自動化的解決方案嗎。
步驟1:
yum install glibc-static libstdc++-static -y
安裝c和c++的靜態庫(據說如果系統中缺少libc.a和libstdc++.a編譯時間會出錯,但是我沒有那麼多閒情逸緻去試,實踐過的朋友可以回複一下,分享一下經驗,讓大家都長長見識)
步驟2:
下載解壓gcc,我的gcc目錄是gcc-4.7.2。
步驟3:
進入gcc目錄,執行:
./contrib/download_prerequisites
這個神奇的指令檔會幫我們下載、配置、安裝那三個依賴的庫。可以節約我們大量的時間和精力。
步驟4:
你以為這三個庫自動下載了、自動make install了就沒事了嗎。錯。
很多人在編譯gcc的時候出現各種奇奇怪怪的錯誤就是這步沒有做好。
它們還不在.so檔案的搜尋路徑裡面,需要加進去,最後切記切記一定要執行一下ldconfig。
大致做法為:
1,找到你的共用庫檔案被install到哪個目錄了(updatedb+locate命令)。
2,如果你的庫不是直接放在/lib或/usr/lib下,需要修改/etc/ld.so.conf檔案,加入你的共用庫的路徑
3,如果在2中添加了共用庫路徑,切記要執行一下ldconfig,更新響應cache檔案讓系統能找到你的共用庫。
具體做法參加我的上一博文“Linux共用庫路徑配置”http://blog.csdn.net/yanxiangtianji/article/details/8316562
步驟5:
建立臨時目錄,這個目錄用以存放編譯時間的大量臨時檔案,是文檔要求中必須的。
我是在gcc-4.7.2下建立了一個名為build的目錄,進入它。
mkdir build
cd build