centos 6 升級gcc

來源:互聯網
上載者:User

今天又搞了一天,升級成功的那一刻,我都快感動得哭了。。。什麼都不說了,都是淚。。。

其實升級不難,真的一點都不難,重點是被自己人的文檔坑了。。

系統centos 6.3 32位 i386 內建gcc 4.4.6 升級到gcc 4.8

參考:http://www.cnblogs.com/zhangtingkuo/archive/2013/04/06/3002982.html

    http://blog.csdn.net/magicyang87/article/details/7972169  

 

1.下載源碼包

wget http: //ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.bz2  解壓: tar -jxvf  gcc-4.8.0.tar.bz2  2.下載編譯所需依賴庫 cd gcc-4.8.0  ./contrib/download_prerequisites  cd ..  3.建立編譯輸出目錄 mkdir gcc-build-4.8.0  4.進入此目錄,執行以下命令,產生makefile檔案 cd  gcc-build-4.8.0 ../gcc-4.8.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib  5.編譯 make -j4如果編譯成功,則時間是比較長的,半個小時左右,所以如果你看它一直在輸出沒有立刻停下來,應該很開心!  6.安裝sudo make install   7.切換GCC到新版確定新安裝的GCC的路徑,一般預設在/usr/local/bin下。可以先updatedb,然後locate gcc-4.8|tail找一下ls /usr/local/bin | grep gcc添加新GCC到可選項,倒數第三個是名字,倒數第二個參數為新GCC路徑,最後一個參數40為優先順序,設大一些之後就自動使用新版了
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/i686-pc-linux-gnu-gcc 40

8.確認目前的版本已經切換為新版gcc -v我這裡用ssh遠端,發現版本沒變,斷開重練下,重建會話後發現變成了4.8了!  看起來很順有木有?!心酸的彎路不知道走了多少呢!以下是辛酸史。。 =================萬惡的分割線=========================== 首先是參考我們偉大的頭兒的部落格,http://blog.csdn.net/yanxiangtianji/article/details/8365630。  坑一、libstdc++-static 他這過程也是參考各種部落格整合而來,因為我網上看大部分第一步都是:yum install glibc-static libstdc++-static -y可其實centos的源上根本沒有libstdc++-static,第一個是有的,請安裝。坑爹的是,按照教程進行到編譯make 之後,查看目錄下的config.log 檔案 ,搜尋err,果然報 static-libstdc++的錯!這下我可認真了,死都要把libstdc++-static裝上。首先,換centos的源,換了163的源(http://www.cnblogs.com/peterpanzsy/archive/2013/04/07/3003387.html),不行,後來跑oschina上提問,大神說epel源上應該有,於是換epel的源,仍然屁都沒有!於是去下rpm包,centos的軟體包又不多,只能去下fedora的,一個家族的可以一試,epel源兩者也通用的。rpm -ivh xxx.rpm
結果出現依賴問題,於是下了這麼一堆:可是安裝第一個的時候又跟系統內建的4.4.6版本的衝突,尼瑪的,yum remove又因為依賴關係不可行,總不能卸載內建的gcc 4.4.7吧,後面編譯新的gcc還要靠它呢,不能衝動。今天上午就是亂搞,搞到報kernel的錯,下午花了一個小時重裝的系統。

 還有一個原因,大神誤以為他當年6.3的centos是成功yum裝上了libstdc++-static,於是我順道重裝的時候換成了centos6.3的版本,開始是6.4的其實。 最後發現6.3的源上也沒有這個神奇的東西。

於是對安裝libstdc++-static絕望了。。。放棄。


坑二、三個依賴庫是否要手動編譯安裝的問題。

進入gcc目錄,執行:

./contrib/download_prerequisites 

下正確版本的載那三個依賴的庫。

大神說:可惜它不能自動設定編譯安裝,可以用我寫的這個指令碼來執行(假設當前是在contrib檔案夾下):

cd gmd
./configure
make install
cd ../mpfr
./configure
make install
cd ../mpc
./configure
make install可是真的要裝嗎?尼瑪裝完之後顯然會出問題的!至少在我的實踐裡。我在網上偶然間看到有人這麼說了一句,放心上了。這麼手動一裝之後,編譯gcc,直接報兩個error停掉了,然後就出現第一步搜到的libstdc++-static錯誤。 後來跳過手動裝gmd  mpfr mpc之後,才執行了編譯成功了。。。  坑三、共用庫路徑的問題 因為大神那篇部落格裡說以上的三個共用庫不在系統預設路徑下。我們可以搜一下:locate mpc|grep so          確實有/usr/local/lib/libmpc.so
可是當我在/etc/ld.so.conf.d下面加上/usr/local/lib路徑後執行ldconfig又報錯,估計下面沒有找到合法的庫檔案吧。於是去掉,並且沒有產生什麼影響。  我是真心不知道大神那個是怎麼會那麼複雜的。。   
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.