對於剛接觸linux的人來說安裝gcc真不是那麼簡單的事,尤其是對configure命令不熟悉的那更是一個慘,
以前也有安裝順利的時候,只要 configure、 make、 make install 一切順利,不順利的時候,報錯:少這個少那個
真是頭疼的厲害。下面是我在redhat5.5 下碰到的一些問題。在這給那些安裝gcc遇到麻煩的同學一點啓發。
安裝環境 gcc-4.7.0.tar.bz2 、redhat5.5 。
1、在http://gcc.gnu.org網上下載gcc壓縮包。
2、解壓gcc壓縮包:
1)我把壓縮包放到 /usr/local/src 文件下
2)解壓 bzcat gcc-4.7.0.tar.bz2 | tar xvf - (如下載的是別的類型的壓縮包,那就更換壓縮命令解壓就ok這個都懂的)
3)在src下多了個gcc-4.7.0文件夾(這是源文件)
4)創建安裝路徑 mkdir /usr/local/gcc (這是個臨時目錄,用於臨時存放編譯文件的目錄 )
5)創建安裝路徑 mkdir /usr/local/gcc-4.7.0 (這個是目標目錄,將會把gcc 安裝到該目錄中)
6)切換到 安裝目錄下 cd /usr/local/gcc
7) configure 進行軟件與系統配置(這個是關鍵,問題基本都出在這裏面,如實在解決不了請 認真查閱configure命令)
../gcc-4.7.0/configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --enable--long-long
--host=i386-redhat-linux--with-system-zlib --enable-languages=c,c++,java
》warning:If you wanted to set the --build type, don't use --host
出現該警告 乾脆直接不要 --host=i386-redhat-linux 設置了 讓其默認
》error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
這說明你電腦少環境 gmp 、mpfr 、mpc 如沒出現該錯誤 恭喜你可以跳過該問題
在這介紹 gmp 、mpfr 、mpc 的安裝
gmp 下載地址 ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.bz2下載gmp-5.0.1.tar.bz2
mpc 下載地址 http://www.multiprecision.org/mpc
mpfr 下載地址 http://ftp.gnu.org/gnu/mpfr/
安裝順序 先安裝 gmp 在安裝mpfr 再安裝mpc 這三個文件版本是有關聯 的 例如 mpc 0.9 與1.0.1 版本都要求mpfr 版本在2.4.2
以上,在安裝的時候注意點,萬一版本不符合,根據提示下載相應的版本。
解壓 gmp: tar jxvf gmp-5.0.1.tar.bz2 得到gmp-5.0.1 文件 ,在該文件的同級目錄下創建一個臨時的編譯文件temp
# cd temp 文件中中或者直接打開該文件夾 在該文件夾中打開終端 執行下面命令行
#../gmp-5.0.1/configure --prefix=/usr/local/gmp-5.0.1
#make
# sudo make install
這是gmp安裝完成 ----------------------------------------------------------------------------------------------------------------------------
在gmp-5.0.1 文件夾同級目錄下 解壓 mpfr: tar jxvf
mpfr-2.4.2.tar.bz2 得到mpfr-2.4.0文件夾,再次切進到temp目錄 執行
#../mpfr-2.4.2/configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-5.0.1
# make
# sudo make install
這mpfr 安裝完成--------------------------------------------------------------------------------------------------------------------------------
在gmp-5.0.1 文件夾同級目錄下 解壓 mpc: tar zxvf
mpc-0.9.tar.gz 得到mpfr-2.4.0文件夾,再次切進到temp目錄 執行
#../mpc-0.9/configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-2.4.2
# make
# sudo make install
這mpc安裝完成--------------------------------------------------------------------------------------------------------------------------------
導入環境變量 # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-2.4.2/lib
8)在先前第4部創建的文件夾中打開終端 #../src/gcc-4.7.0/configure --prefix=/usr/local/gcc-4.7.0 --enable-threads=posix --disable-checking --disable-multilib
--enable-languages=c,c++ --with- gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.9
9)#make 這裏時間有點長 慢慢等(苦命啊 希望別在報錯了 如報錯 是以下錯誤 那你幸運了 )
》error:
“checking for suffix of object files... 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 `/tmp/gcc
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/tmp/gcc
make: *** [bootstrap] Error 2
具體報錯原因我也不說了 直接看怎麼解決
在導入 一次 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-2.4.2/lib
》》 Configure:current value: -g -O2 ”形式,
就是先前的值和現在的不一樣。這是由於緩存的問題需要把緩存文件產出重新編譯
10)#make install ok 完成安裝
11)配置
GCC 4.7.0的所有文件,包括命令文件(如gcc、g++)、庫文件等都在${destdir}目錄下分別存放,如命令文件放在bin目錄下、庫文件在 lib下、頭文件在include下等。由
於命令文件和庫文件所在的目錄還沒有包含在相應的搜索路徑內,所以必須要作適當的設置之後編譯器才能順利地找到並使用它們。
把安裝目錄的bin放在環境變量PATH中。網上有種 用符號連接的方式實現,這樣做的好處是我仍然可以使用系統上原來的舊版本的GCC編譯器。
首先,查看原來的gcc所在的路徑:
# which gcc
在我的系統上,上述命令顯示:/usr/bin/gcc。因此,原來的gcc命令在/usr/bin目錄下。我們可以把GCC 4.7.0中的gcc、g++、gcj等命令在/usr/bin目錄下分別做一個符
號連接:
# cd /usr/bin
# ln -s /usr/local/gcc-4.7.0/bin/gcc gcc470
# ln -s /usr/local/gcc-4.7.0/bin/g++ g++470
# ln -s /usr/local/gcc-4.7.0/bin/gcj gcj470
這樣,就可以分別使用gcc470、g++470、gcj470來調用GCC 4.1.2的gcc、g++、gcj完成對C、C++、JAVA程序的編譯了。
同時,仍然能夠使用舊版本的GCC編譯器中的gcc、g++等命令。
將/usr/local/gcc-4.7.0}/lib路徑添加到環境變量LD_LIBRARY_PATH中,
例如,如果GCC 4.7.0安裝在/usr/local/gcc-4.7.0目錄下,在RH Linux下可以直接在命令行上執行
# export LD_LIBRARY_PATH=/usr/local/gcc-4.7.0/lib
最好添加到系統的配置文件中,這樣就不必要每次都設置這個環境變量了,在文件$HOME/.bash_profile中添加下面兩句:
LD_LIBRARY_PATH=/usr/local/gcc-4.1.2/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
重啓系統設置生效,或者執行命令
# source $HOME/.bash_profile