最近嘗試了fedora、ubuntu、mint、debian、opensuse等多種linux發行版,與CentOS比較之后還是感覺之前用的CentOS比較熟悉,比較習慣。現在CentOS的最新版本為CentOS7,由於實驗室的電腦比較老,上這個64位的系統有點卡,所以只能退而求其次,用這個CentOS6.6了。。。
CentOS自帶的gcc工具版本為4.4.7,這和CentOS6用的linux內核一樣,都是屬於古董級別的版本了。這個版本對c++11的支持並不友好,就萌生了升級gcc的想法,但是用yum update gcc卻檢測不到新版本的gcc。想用高版本的gcc,又沒條件升級系統,無奈之下,只能選擇在老版本上手動編譯安裝最新版本的gcc了。
1.首先,從下面網站中下載想要安裝的gcc:
現在最新的gcc版本為gcc-5.3,鑒於習慣,還是不太喜歡最新版本的軟件,就下載了gcc-4.9.3。
2.解壓該文件:tar xjvf gcc-4.9.3.tar.bz2
3.進入解壓完成的目錄,執行如下命令:
./contrib/download_prerequisites
由於新版本的gcc需要更新的各種依賴庫和配置,如果手動挨個下載實在麻煩,而且還可能遇到很多問題,所以gcc開發者為我們提供了這么一個配置腳本,只要執行,就可以自動下載需要的文件了。可以vim一下該文件內容,主要就是下載各種依賴包。
4.為了存放編譯期間產生的中間文件,我們建立一個文件夾存放這些文件,執行命令:
mkdir gcc-build-4.9.3
5.進入該文件夾,執行如下命令,來產生makefile文件:
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
注意最開始是 ../ 而不是 ./ !
6.命令完成后,就可以編譯新版本的gcc了,執行make命令,等待即可,該過程根據不同機器配置,等待的時間也不一樣,在我的電腦上運行了接近 2 個小時之久。。。。。。。
如果電腦是多核電腦,想要提高編譯速度,可以執行make -jx。其中的x為你cpu的核數。但是這樣執行有可能會產生錯誤,如果產生了錯誤,就直接make吧。。。
7.編譯完成,就可以安裝了,執行 make install 命令,等待安裝完成
8.安裝完成后,重啟,gcc -v 查看版本,就發現新的gcc生效了。寫一個小程序驗證一下,如果程序中調用了c++11特性,編譯時需要加入選項:
g++ -std=c++11 test.cpp -o test