操作環境 CentOS6.5 64bit,原版本4.4.7,不能支持C++11的特性~,希望升級到4.8.2
不能通過yum的方法升級,需要自己手動下載安裝包并編譯
1.1 獲取安裝包并解壓wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2tar -jxvf gcc-4.8.2.tar.bz2
當然,http://ftp.gnu.org/gnu/gcc里面有所有的gcc版本供下載,最新版本已經有4.9.2啦.
1.2 下載供編譯需求的依賴項參考文獻[1]中說:這個神奇的腳本文件會幫我們下載、配置、安裝依賴庫,可以節約我們大量的時間和精力。
cd gcc-4.8.0 ./contrib/download_PRerequisites1.3 建立一個目錄供編譯出的文件存放
mkdir gcc-build-4.8.2cd gcc-build-4.8.21.4 生成Makefile文件
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib1.5 編譯(注意:此步驟非常耗時)
make -j4
-j4選項是make對多核處理器的優化,如果不成功請使用make,相關優化選項可以移步至參考文獻[2]。
我在安裝此步驟時候出錯,錯誤描述:
compilation terminated.make[5]: *** [_gcov_merge_add.o] 錯誤 1make[5]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/32/libgcc'make[4]: *** [multi-do] 錯誤 1make[4]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/libgcc'make[3]: *** [all-multi] 錯誤 2make[3]: *** 正在等待未完成的任務....make[3]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/libgcc'make[2]: *** [all-stage1-target-libgcc] 錯誤 2make[2]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2'make[1]: *** [stage1-bubble] 錯誤 2make[1]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2'make: *** [all] 錯誤 2
大概看看,錯誤集中在x86_64unknown-linux-gnu/32/libgcc 和x86_64-unknown-linux-gnu/libgcc
根據參考文獻[3],安裝如下兩個軟件包(僅用于CentOS6.X):
sudo yum -y install glibc-devel.i686 glibc-devel
過程中CPU基本滿載:
sudo make install二、驗證安裝
重啟,然后查看gcc版本:
gcc -v
嘗試寫一個C++11特性的程序段tryCpp11.cc,使用了shared_ptr
1 //tryCpp11.cc 2 #include <iostream> 3 #include <memory> 4 5 int main() 6 { 7 std::shared_ptr<int> pInt(new int(5)); 8 std::cout << *pInt << std::endl; 9 return 0;10 }
驗證文件:
g++ -std=c++11 -o tryCpp11 tryCpp11.cc./tryCpp11三、其他安裝:
- 在Ubuntu機器上安裝:參考文獻[3]
- 非簡易安裝:參考文獻[4]
- 多個gcc版本共存問題:暫無
四、參考文獻[1]參考的主要安裝步驟http://www.CUOXin.com/ytjjyy/p/4008096.html
注:這篇文章的后半部分解決動態庫的方法非常有用處
[2]make -j4的討論http://stackoverflow.com/questions/15289250/make-j4-or-j8
[3] libgcc報錯http://argcv.com/articles/2946.c/comment-page-1
注:這篇文章提供了Ubuntu12.04上gcc4.7的安裝方法
[4]非簡易安裝http://my.oschina.net/u/728245/blog/184550 另一個:圖文版本
新聞熱點
疑難解答