CentOS GCC升級

最近由於需求的原因,需要把目前gcc-4.4.4升級到gcc-4.6.1,考慮到有多臺的原因,做了一個腳本自動安裝結合批量工具分發。

一、安裝環境
系統版本:centos6.0X64
原GCC版本:gcc-4.4.4
新GCC版本:gcc-4.6.1

二、安裝方法一(自動安裝)

連網環境下:

1. 獲取gcc源碼包

2. 解壓

3. 進入解壓後的文件,安裝依賴文件:

./contrib/download_prerequisites

【主要是安裝gmp, mpc,mpfr包】

4. 生成配置文件: ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib (只編譯64bit)

5. 編譯安裝: make & make install

6. 重啓機器


三、安裝方法二(手動安裝)
1、下載安裝的源碼:
如下需要下載以下包:gcc-4.6.1.tar.bz2 gmp-4.3.2.tar.bz2 mpc-0.8.1.tar.gz mpfr-2.4.2.tar.bz2
下載地址如下:

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
wget 
http://ftp.gnu.org/gnu/gcc/gcc-4.6.1/gcc-4.6.1.tar.bz2 即可!

2、解壓安裝:由於有依賴,安裝有先後順序:GMP、MPFR、MPC、GCC
安裝GMP:  tar jxf gmp-4.3.2.tar.bz2 &&cd gmp-4.3.2/ ;./configure –prefix=/usr/local/gmp/ &&make &&make install

安裝MPFR:  cd ../ ;tar jxf mpfr-2.4.2.tar.bz2 ;cd mpfr-2.4.2/ ;./configure –prefix=/usr/local/mpfr –with-gmp=/usr/local/gmp &&make &&make install

安裝MPC:  cd ../ ;tar xzf mpc-0.8.1.tar.gz ;cd mpc-0.8.1 ;./configure –prefix=/usr/local/mpc –with-mpfr=/usr/local/mpfr –with-gmp=/usr/local/gmp

安裝GCC:cd ../ ;tar jxf gcc-4.6.1.tar.bz2 ;cd gcc-4.6.1 ;./configure –prefix=/usr/local/gcc –enable-threads=posix –disable-checking –disable-multilib –enable-languages=c,c++ –with-gmp=/usr/local/gmp –with-mpfr=/usr/local/mpfr/ –with-mpc=/usr/local/mpc/
然後執行如下:export  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib/    

//這一步很關鍵,設置變量,不設置後面會報錯。

注意:在命令行中執行上述命令,添加環境變量,在重啓後會失效。

上述命令添加到文件/etc/bashrc 末尾,可以解決上述問題。

make && make install

安裝完畢即可!然後做一個鏈接就可以使用GCC了

mkdir -p  /data/backup/`date +%Y%m%d`

mv /usr/bin/{gcc,g++}      /data/backup/`date +%Y%m%d`

新建軟鏈接:

ln -s /usr/local/gcc/bin/gcc          /usr/bin/gcc

ln -s /usr/local/gcc/bin/g++          /usr/bin/g++

三、測試GCC
直接輸入gcc -v 可以查看到gcc 版本爲4.6.1和相關的編譯參數就ok了!

 

 

 

附上一個最簡單的安裝腳本:

  1. #!/bin/sh 
  2. ##auto make install gcc 
  3. ##2012-07-03 
  4. tar jxf gmp-4.3.2.tar.bz2 &&cd gmp-4.3.2/ ;./configure –prefix=/usr/local/gmp/ &&make &&make install 
  5.  
  6. sleep 1 
  7. cd ../ ;tar jxf mpfr-2.4.2.tar.bz2 ;cd mpfr-2.4.2/ ;./configure –prefix=/usr/local/mpfr –with-gmp=/usr/local/gmp &&make &&make install 
  8.  
  9. cd ../ ;tar xzf mpc-0.8.1.tar.gz ;cd mpc-0.8.1 ;./configure –prefix=/usr/local/mpc –with-mpfr=/usr/local/mpfr –with-gmp=/usr/local/gmp &&make &&make install 
  10.  
  11. cd ../ ;tar jxf gcc-4.6.1.tar.bz2 ;cd gcc-4.6.1 ;./configure –prefix=/usr/local/gcc –enable-threads=posix –disable-checking –disable-multilib –enable-languages=c,c++ –with-gmp=/usr/local/gmp –with-mpfr=/usr/local/mpfr/ –with-mpc=/usr/local/mpc/ 
  12.  
  13. if 
  14. [ $? -eq 0 ];then 
  15. echo “This gcc configure is success” 
  16. else 
  17. echo “This gcc configure is failed” 
  18. fi 
  19. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib/ 
  20.  
  21. make && make install 
  22.  
  23. [ $? -eq 0 ]&&echo This is make install success 

注意: 本文檔中,gcc安裝在/usr/local/目錄下,在編譯某些大型程序時,可能會出現以下問題:

           1.  如在編譯Gem5時,/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by build/ALPHA_SE/m5.opt). 主要原因是/usr/lib64/libstdc++.so.6仍然是舊版本gcc中的庫,因此可以通過建立符號鏈接,ln -s /usr/local/gcc-4.4.6/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6

           2. error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory.  通過再次添加環境變量

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib/ 解決該問題。

本文轉載自“煙雨樓臺” 博客  http://wgkgood.blog.51cto.com/1192594/917632



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章