一、安裝環境
系統版本: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了!
附上一個最簡單的安裝腳本:
- #!/bin/sh
- ##auto make install gcc
- ##2012-07-03
- tar jxf gmp-4.3.2.tar.bz2 &&cd gmp-4.3.2/ ;./configure –prefix=/usr/local/gmp/ &&make &&make install
- sleep 1
- 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
- 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
- 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/
- if
- [ $? -eq 0 ];then
- echo “This gcc configure is success”
- else
- echo “This gcc configure is failed”
- fi
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib/
- make && make install
- [ $? -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