CentOS6.5升級手動安裝GCC4.8.2 與 CentOS 6.4 編譯安裝 gcc 4.8.1

http://blog.163.com/zhu329599788@126/blog/static/6669335020161179259975

 
CentOS6.5升級手動安裝GCC4.8.2

1、簡易安裝

操做環境 CentOS6.5 64bit,原版本4.4.7,不能支持C++11的特性~,但願升級到4.8.2php

不能經過yum的方法升級,須要本身手動下載安裝包並編譯html

1.1 獲取安裝包並解壓

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2
tar -jxvf gcc-4.8.2.tar.bz2

固然,http://ftp.gnu.org/gnu/gcc  裏面有全部的gcc版本供下載,最新版本已經有4.9.2啦.linux

1.2 下載供編譯需求的依賴項

參考文獻[1]中說:這個神奇的腳本文件會幫咱們下載、配置、安裝依賴庫,能夠節約咱們大量的時間和精力。ios

cd gcc-4.8.0 
./contrib/download_prerequisites 

1.3 創建一個目錄供編譯出的文件存放

mkdir gcc-build-4.8.2
cd gcc-build-4.8.2

1.4 生成Makefile文件

../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

1.5 編譯(注意:此步驟很是耗時)

make -j4

-j4選項是make對多核處理器的優化,若是不成功請使用 make,相關優化選項能夠移步至參考文獻[2]。c++

我在安裝此步驟時候出錯,錯誤描述:bootstrap

 
compilation terminated.
make[5]: *** [_gcov_merge_add.o] 錯誤 1
make[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] 錯誤 1
make[4]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/libgcc'
make[3]: *** [all-multi] 錯誤 2
make[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] 錯誤 2
make[2]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2'
make[1]: *** [stage1-bubble] 錯誤 2
make[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/libgcccentos

根據參考文獻[3],安裝以下兩個軟件包(僅用於CentOS6.X):網絡

sudo yum -y install glibc-devel.i686 glibc-devel

過程當中CPU基本滿載:ide

CentOS6.5升級手動安裝GCC4.8.2 - zhu329599788@126 - Mindy

 

1.六、安裝

sudo make install

 

2、驗證安裝

重啓,而後查看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

--------------------------------------------------------------------------------------------------------------------


 CentOS 6.4 編譯安裝 gcc 4.8.1

今天在isocpp上看到「GCC 4.8.1 released, C++11 feature complete」這個消息,很是興奮。終於有一個全面支持C++11語言特性的編譯器了!

固然了,gcc僅僅是語言特性上全面支持C++11,libstdc++貌似尚未徹底跟上,不過我已經挺知足了,至少能夠去嘗試各類特性了。另外,以前也有消息說Clang功能上也100%支持C++11了,可是內部還在作測試,Clang3.3的release版聽說6月5號正式發佈,最近對於C++來講大事真多啊,很期待!

今天下午看到這個消息,晚上就實在忍不住了,趕忙把最新的gcc下載下來編譯安裝起來,下面介紹下安裝步驟:

安裝以前,仍是提醒下你們:一些基本的準備工做我就不說了,好比得裝個Linux(CentOS,Ubuntu等等),而後裝上基本的編譯環境,用較老的編譯環境編譯新的編譯器,這叫自舉(bootstrap)。若是編譯的過程,提示出錯,就按照提示去把環境裝好,再也不詳細說明。

一、下載gcc 4.8.1源碼包:

http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.1/gcc-4.8.1.tar.bz2

我是虛擬機裏面裝的Linux,我嫌wget太慢,因此本身在Windows上用迅雷下好,而後共享到Linux中。

二、解壓:

tar -jxvf gcc-4.8.1.tar.bz2

三、下載編譯所需的依賴包:

這個步驟有兩種方式完成:

a) 若是Linux有網絡鏈接,直接這樣:

cd gcc-4.8.1

./contrib/download_prerequisites

cd ..

b) 若是Linux沒有網絡鏈接(我主機和虛擬機是Host-only,不能聯網,因此另外想辦法),則用Windows上網下載這幾個包:

ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2

http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2

http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz

有人問,必定要下載幾個版本嗎?下載最新的版本行不行?我沒試過,也不知道,我是按照gcc-4.8.1/contrib/download_prerequisites腳本里面的版本下載的。既然裏面已經說了這幾個版本,那我就嚴格按照它的要求來作。

而後解壓並移動到gcc-4.8.1下面:

tar -xjf gmp-4.3.2.tar.bz2

tar -xjf mpfr-2.4.2.tar.bz2

tar -xzf mpc-0.8.1.tar.gz

mv gmp-4.3.2 gcc-4.8.1/gmp

mv mpfr-2.4.2 gcc-4.8.1/mpfr

mv mpc-0.8.1 gcc-4.8.1/mpc

這樣的作法好處是,不用單獨編譯gmp、mpfr和mpc三個包,放在gcc源碼下面一塊兒編譯(事實上這也是gcc-4.8.1/contrib/download_prerequisites腳本的作法,我的感受更簡潔些)。

四、新建目錄用於存放編譯結果:

mkdir gcc-build-4.8.1

五、進入新目錄,並執行configure命令,產生makefile:

cd gcc-build-4.8.1

../gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

具體選項很少解釋,你們能夠本身查看,我只用到c和c++,因此只編譯這兩種語言的編譯器。

六、編譯:

make -j4

我是i5四核,因此開4個線程同時編譯,要是有8核就更爽了~我在虛擬機裏面花了30分鐘不到的時間,不算太慢了。

七、安裝:

sudo make install

八、大功告成,檢查版本:

g++ --version

g++ (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

【參考文章】:

http://rritw.com/a/caozuoxitong/OS/20130407/335815.html

http://www.lainme.com/doku.php/blog/2012/06/%E5%9C%A8centos_5%E4%B8%8A%E7%BC%96%E8%AF%91gcc_4.7

http://www.cnblogs.com/chuncn/archive/2010/10/15/1851853.html

http://blog.csdn.net/bokee/article/details/5380044

相關文章
相關標籤/搜索