歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> CentOS 5.5 手動安裝 GCC4.6.2

CentOS 5.5 手動安裝 GCC4.6.2

日期:2017/2/28 14:36:56   编辑:Linux教程

從GCC官網下載最新版本的GCC4.6.2

http://gcc.gnu.org/

國內鏡像地址:
http://mirrors.ustc.edu.cn/gnu/gcc/

首先在配置gcc的過程中會出現錯誤:
# ./configure --prefix=/usr/local/gcc-4.6.2
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.
說明要安裝gcc需要GMP、MPFR、MPC這三個庫
官網下載地址:
http://gmplib.org/
http://www.mpfr.org/
http://www.multiprecision.org/index.php?prog=mpc

由於MPFR依賴GMP,而MPC依賴GMP和MPFR,所以要先安裝GMP,其次MPFR,最後才是MPC。這裡三個庫我用的版本分別是gmp-5.0.3,mpfr-3.1.0和mpc-0.9。
依次解壓這3個壓縮包

安裝gmp-5.0.3
# cd gmp-5.0.3
# ./configure --prefix=/usr/local/gmp-5.0.3
# make && make install && make clean

安裝mpfr-3.1.0
# cd mpfr-3.1.0
# ./configure --prefix=/usr/local/mpfr-3.1.0 --with-gmp=/usr/local/gmp-5.0.3
# make && make install && make clean

安裝mpc-0.9
#cd mpc-0.9
# ./configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.3 --with-mpfr=/usr/local/mpfr-3.1.0
# make && make install && make clean


安裝好這三個庫之後,就可以正式開始安裝gcc了。
進入gcc源碼目錄
gcc的配置選項有很多,具體可以參考gcc源文件目錄下的安裝說明。這裡只安裝了c和c++的編譯器。(如果不指定編譯的語言,則會在make時不通過,爆出某些文件找不到等錯誤,所以還是建議在此指定編譯語言為c,c++)然後開始make編譯。為保險起見,需要在環境變量LD_LIBRARY_PATH添加前面三個庫的位置,鍵入以下命令:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.3/lib:/usr/local/mpfr-3.1.0/lib
然後重新make編譯,在經過漫長的1小時等待後,終於編譯完成。


# ./configure --prefix=/usr/local/gcc-4.6.2 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.0.3 --with-mpfr=/usr/local/mpfr-3.1.0 --with-mpc=/usr/local/mpc-0.9
# make && make install && make clean


至此gcc就全部安裝完成了。
不過目前還不能使用新版本的gcc,因為新版的可執行文件還沒加到命令的搜索路徑中。在這裡我為新版的gcc和g++命令分別建立了一個軟鏈接。進入/usr/bin目錄後,鍵入如下命令建立軟鏈接。


sudo ln -s /usr/local/gcc-4.6.2/bin/gcc gcc462
sudo ln -s /usr/local/gcc-4.6.2/bin/g++ g++462
這樣我使用新版本gcc的時候就可以用gcc462和g++462命令,同時也可使用原來的gcc編譯程序。當然這裡也可以直接將/usr/bin目錄下gcc,g++命令重新鏈接到新版本的gcc可執行文件。在正式使用之前還有最後一個工作要做,就是將前面安裝的GCC-4.6.2庫的路徑加進環境變量LD_LIBRARY_PATH中,不然在編譯程序的時候會出錯。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gcc-4.6.2/lib


由於export方式在重啟後失效,所以需要編輯/etc目錄下的bashrc文件配置shell環境。
在這個文件中添加以下語句:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.3/lib:/usr/local/mpfr-3.1.0/lib:/usr/local/gcc-4.6.2/lib
export LD_LIBRARY_PATH


以上方法不佳,可以使用下面的方法:
vi /etc/ld.so.conf
添加
/usr/local/mpc-0.9/lib
/usr/local/gmp-5.0.3/lib
/usr/local/mpfr-3.1.0/lib
/usr/local/gcc-4.6.2/lib
保存退出然後執行ldconfig使更改生效


另外使用gcc-4.6.2還有如下方法:
備份原始的gcc 和 g++
# cp /usr/bin/gcc /usr/bin/gcc.bak
# cp /usr/bin/g++ /usr/bin/g++.bak


建立軟鏈接
# cd /usr/bin
# ln -s /usr/local/gcc-4.6.2/bin/gcc gcc
# ln -s /usr/local/gcc-4.6.2/bin/g++ g++

使用後還原即可

出錯處理:
make過程中報錯
checking for suffix of object files... configure: error: in `/data/src/gcc/gcc-4.6.2/x86_64-unknown-linux-gnu/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[2]: *** [configure-stage1-target-libgcc] Error 1
make[2]: Leaving directory `/data/src/gcc/gcc-4.6.2'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/data/src/gcc/gcc-4.6.2'
make: *** [all] Error 2

原因修改ld.so.conf後未執行ldconfig 新加的庫未起效

推薦閱讀:

Ubuntu 12.04嵌入式交叉編譯環境arm-linux-GCC搭建過程圖解 http://www.linuxidc.com/Linux/2013-06/85902.htm

Ubuntu 12.10安裝交叉編譯器arm-none-linux-gnueabi-GCC http://www.linuxidc.com/Linux/2013-03/82016.htm

Ubuntu下Vim+GCC+GDB安裝及使用 http://www.linuxidc.com/Linux/2013-01/78159.htm

Ubuntu下兩個GCC版本切換 http://www.linuxidc.com/Linux/2012-10/72284.htm

更多CentOS相關信息見CentOS 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=14

Copyright © Linux教程網 All Rights Reserved