【轉載】轉載時請以超鏈接形式標明文章原始出處和作者信息及本聲明
http://www.blogbus.com/huangw10-logs/182474992.html
周末折騰了一下午加一夜,終於弄明白了!失敗的原因是網上着的帖子很多都是互相復制,其中因為每個人的設置路徑之類的不一樣,作者復制時沒有注意,因此記錄如下,關鍵位置盡量解釋清楚。
首先要明白先后次序,m4—>gmp—>mpfr—>mpc
1、准備工作(此部分是安裝三個庫的先決條件) :
先安裝m4,輸入 sudo aptitude install build-essential m4 ,此時有可能提示沒安裝aptitude,如果沒有,根據提示,輸入 sudo apt-get install aptitude 就OK
2、安裝gmp、mpfr和mpc,都可以在 ftp://gcc.gnu.org/pub/gcc/infrastructure/ 中下載,我這里分別下載gmp4.3.2,mpfr2.4.2和mpc0.8.1, 之后切換到root用戶(sudo -i) ,此為以下步驟的前提!
在 /usr/local/下分別建立三個文件夾
cd /usr/local/
mkdir gmp432
mkdir mpfr242
mkdir mpc081
(1)安裝gmp,可以提前 把下載的三個庫的壓縮包分別放到相應的文件夾下
cd gmp432 *這個文件夾可理解為是將gmp安裝在這里
bunzip2 gmp-4.3.2.tar.bz2
tar xf gmp-4.3.2.tar *生成gmp-4.3.2文件夾(這個文件夾可理解為是安裝文件所在的目錄)
cd gmp-4.3.2
./configure --prefix=/usr/local/gmp432
*--prefix選項代表要將該庫安裝在哪里,我裝在/usr/local/gmp432目錄下,后面的安裝都會用到這個選項。
make *如果出錯,重新configure的話,先make distclean清除make信息后再重新configure
make check * 在編譯的時候,最后沒提示什么錯誤再往下進行, 建議每一次make之后都運行這個命令
make install *裝好后/usr/local/gmp432/目錄下有三個文件夾
make clean
(2)安裝mpfr,
cd mpfr242
cd mpfr-2.4.2
./configure --prefix=/usr/local/mpfr242 --with-gmp=/usr/local/gmp432
*注意這個地方的路徑匹配,gmp安裝在哪這個地方就要寫哪,因為是依存關系!建議統一安裝在gmp432、
mpfr242、mpc081這三個地方
make
make check
make install
(3)安裝mpc,
cd mpc081
cd mpc-0.8.1
./configure --prefix=/usr/local/mpc081 --with-gmp=/usr/local/gmp432 --with-mpfr=/usr/local/mpfr242
*同上,注意路徑!!!
make
make check
make install
3、安裝gcc-4.4.5
在/usr/local/下新建gcc445文件夾,之后在http://gcc.gnu.org/index.html 上下載gcc壓縮包,放在/usr/local/gcc445下,解壓縮后
cd gcc-4.4.5
./configure --prefix=/usr/local/gcc445 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp432 --with-mpfr=/usr/local/mpfr242 --with-mpc=/usr/local/mpc081
*其他帖子是建立個臨時文件夾,上面的語句開頭有些細微差別,這個是我自己悟出來的,也可以參考
http://www.comdyn.cn/from-web/68-server-setup/164-centos-48-gcc450.html 按照他的方法,但是要
注意路徑。
為保險起見,需要在環境變量LD_LIBRARY_PATH添加前面三個庫的位置,鍵入以下命令:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc081/lib:/usr/local/gmp432/lib:/usr/local/mpfr242/lib *注意路徑!
make *注意檢查有沒有錯誤,過程很慢,1-2個小時!
make check *如果make沒有問題,這一步可以省略,因為時間很久
make install
保留舊版的gcc,建立符號鏈接
cd /usr/bin
ln -s /usr/local/gcc445/bin/gcc gcc44
ln -s /usr/local/gcc445/bin/g++ g44++
最后,在/etc/bashrc中(有帖子說是在/etc/profile中,這個我不確定)增加下面兩行代碼:
LD_LIBRARY_PATH=:/usr/local/mpc081/lib:/usr/local/gmp432/lib:/usr/local/mpfr242/lib:/usr/local/gcc445/lib
export LD_LIBRARY_PATH
保存重啟系統后,就可以使用新裝的gcc了,enjoy!
最后看到一個帖子提到以上命令可以寫個shell文件,installgcc.sh,批處理執行,great idea!記下網址,有空可以試試:http://bitterliquor.blog.hexun.com/65259015_d.html