Ubuntu下安裝GCC

  爲了在Ubuntu下安裝那使人悲催的GCC,小弟但是絞盡腦汁,連幹三天。。。當我搞清楚那些破軟件m4,gmp mpfr,mpc等之間的依賴關係,依照強大的度娘提示下,安裝了一遍又一邊一邊又一邊·····它就是不成!shit!就當俺不得不作出拋棄GCC的念頭之時,又是度娘!  原來Ubuntu11.04自帶GCC的!!! 在此建議各位大蝦,在安裝GCC以前,先check一下你的Linux中是否自帶了GCC php

下面是小弟,在這悲催的三天所學到如何在Ubuntu下安裝GCC的過程: html

安裝過程 linux

第一步,從網站http://gcc.gnu.org  上下載文件gcc- 4.6.0 .tar.bz2 c++

第二步,將該文件拖至tmp目錄下。而後解壓縮,在命令行tar vxjf gcc- 4.1.1 .tar.bz2 web

解壓後你能夠看到在tmp目錄下有gcc- 4.6.0 文件shell

第三步,對源文件進行配置,用命令 ubuntu

mkdir  gcc-build centos

cd   gcc-build bash

../gcc-4.6.0/configure --prefix=/usr/local/gcc-4.6.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ ide

  編譯錯誤提醒:

提醒信息:configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1 + and MPC 0.8.0+.

說明要安裝gcc須要GMPMPFRMPC這三個庫,因而又從網上下了三個庫的壓縮包。因爲MPFR依賴GMP,而MPC依賴GMPMPFR,因此要先安裝GMP,其次MPFR,最後纔是MPC。這裏三個庫我用的版本分別是gmp 5.0.1 mpfr2.4.2mpc0.8.1

  先開始安裝GMP。解壓GMP的壓縮包後,獲得源代碼目錄gmp- 5.0.1 。在該目錄的同級目錄下創建一個臨時的編譯目錄,這裏命名爲gmp-build。而後開始配置安裝選項,進入gmp-build目錄,輸入如下命令進行配置:

  ../gmp- 5.0.1 /configure --prefix=/usr/local/gmp-5.0.1

這裏--prefix選項表明要將該庫安裝在哪裏,我是裝在/usr/local/gmp- 5.0.1 目錄下,後面的安裝都會用到這個選項。不過這裏又出現問題了,系統提示缺乏m4: gmp configure: error: No usable m4 in $PATH or /usr/5binm4是一個宏處理器。

 在網上查了一下這個問題的解決辦法,輸入如下命令進行安裝:

sudo aptitude install build-essential m4

或在系統自帶的軟件中心尋m4

再經歷這一切以後在度孃的幫助下,終於明白其實正確的安裝過程以下:

linux下軟件的「安裝」通常是須要3個步驟:

configuremakemake install這三個命令編譯,而安裝的任何一個命令有疑問或者想查看命令相關的參數,均可以在命令後加」 --help」參數來查看安裝命令須要的參數。

其次須要說明的是,因爲可能存在任何可能的狀況,configuremakemake install這三個命令都有可能報錯,若是出錯,終端會給出錯誤的信息,也就是error的提示,你須要針對錯誤的類型去解決安裝中存在的問題,有問題的話能夠在baidu或者google上搜搜出錯信息看看,應該有你要的答案,可是建議在google上搜。Linux是開源的,全世界的客戶多不勝數。遇到和你一樣的問題的人必定存在。因此,有什麼error有什麼問題,儘管找度娘,股溝。上面的資料十分的多。也能夠到相關的Ubuntu論壇上去找,例如:http://forum.ubuntu.org.cn/index.php?sid=c9ccb2d7adcf8fdb78ac99d75581a332 好了,繼續話題。。。。。

1,安裝GCC須要四個相關的軟件:

m4(an implementation of the traditional Unix macro processor)

gmp(GNU Multiple Precision Arithmetic Library)

mpfr(multiple-precision floating-point computations with correct rounding)

    mpc(C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding

下載3個軟件包及安裝參考http://www.comdyn.cn/from-web/68-server-setup/164-centos-48-gcc450.html

    他們的依賴關係如右圖-----------

按照從內圈到外圈的順序安裝(gmp的安裝須要m4,而mpfr依賴gmp,而mpc依賴gmpmpfr,因此要先安裝m4,其次裝gmp,再其次mpfr,最後是mpc)

 

我安裝的後三個庫的版本分別是

(I)           m4的安裝,首先須要說明的是,若是不安裝m4,在安裝gmp的時候系統會提示「m4: gmp configure: error: No usable m 4 in $PATH or /usr/5bin」的錯誤。所以首先須要安裝m4,命令以下

    tar  –zxvf  m4.tar.gz      先解壓縮,而後進入到m4目錄       

    ./configure CC=」cc」

    make

    make install

    因爲沒有指定安裝目錄,所以安裝好後,能夠查看默認的/usr/local/bin目錄下,有一個m4的可執行文件,網上資料說這是一個宏處理器。

(II)      gmp的安裝,後面的安裝都是裝到了指定目錄下,因此我都是用root超級用戶操做的,用su命令切換到超級用戶。因爲我是將gmpmpfrmpc分別安裝到了/usr/local/gmp432/usr/local/mpfr242/usr/local/mpc082目錄下,所以須要先進入/usr/local/目錄下,以超級用戶運行

    mkdir  gmp432  mkdir是建立目錄命令,即先建立安裝目錄,你也能夠在任意目錄下建

    mkdir  mpfr242 

    mkdir  mpc081

完成之後,進入到gmp- 4.3.2 .tar.gz所在的目錄下,開始安裝gmp,

    tar  –vxzf  gmp- 4.3.2 .tar.bz2    再壓縮,而後進入到gmp-4.3.2目錄

    cd  gmp- 4.3.2     (不知道怎麼安裝的能夠看一下解壓縮後該目錄下的INSTALL文件)

    ./configure  --prefix=/usr/local/gmp432

    make

    make  check

    make  install

    安裝好後,能夠查看/usr/local/gmp432目錄下有三個文件夾

(III)    mpfr的安裝,

    tar  –vxzf  mpfr- 2.4.2 .tar.bz2    先解壓縮,而後進入到mpfr-2.4.2目錄

    cd  mpfr- 2.4.2

    ./configure --prefix=/usr/local/gmp432 --with-gmp=/usr/local/gmp432

    make

    make  check

    make  install

mpc的安裝,(仍然在超級用戶下操做),一樣,不知道怎麼安裝的能夠看一下解壓縮後的INSTALL文件,

    tar  –zxvf  mpc- 0.8.1 .tar.gz    先解壓縮,而後進入到mpc-0.8.2目錄

    cd  mpc- 0.8.1

   ./configure --prefix=/usr/local/mpc- 0.8.1 --with-gmp=/usr/local/gmp432 --with-mpfr=/usr/local/mpfr242

    make

    make check

make install

 

安裝好這三個庫以後,就能夠正式開始安裝gcc了。

與此前同樣,在gcc解壓後的文件夾的同級目錄下,建一個編譯gcc的臨時目錄:gcc-build

  mkdir  gcc-build

cd   gcc-build

進入該目錄後配置安裝選項:

../gcc-4.6.0/configure --prefix=/usr/local/gcc-4.6.0 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++

  gcc的配置選項有不少,具體能夠參考gcc源文件目錄下的安裝說明。這裏只安裝了cc++的編譯器。而後開始make編譯。原本覺得就能夠大功告成了,結果在編譯途中又出現了錯誤:error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory

  在網上找到了解決方法,須要添加環境變量LD_LIBRARY_PATH以指出前面三個庫的位置,鍵入如下命令:

  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc- 0.8.1 /lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-2.4.2/lib 

而後運行

make    

而後就耐心等待。。。。。。。。。

 在通過漫長的2小時等待後,終於編譯完成。在安裝說明裏面還有測試這一步,不過那是可選的,我也沒耐心去測試了。直接make install安裝,至此gcc就所有安裝完成了。不過目前還不能使用新版本的gcc,由於新版的可執行文件還沒加到命令的搜索路徑中。在這裏我爲新版的gccg++命令分別創建了一個軟連接。進入/usr/bin目錄後,鍵入以下命令創建軟連接。

  sudo ln -s /usr/local/gcc- 4.5.0 /bin/gcc gcc45
  sudo ln -s /usr/local/gcc-4.5.0/bin/g++ g++45

  這樣我使用新版本gcc的時候就能夠用gcc45g++45命令,同時也可以使用原來的gcc編譯程序。固然這裏也能夠直接將/usr/bin目錄下gccg++命令從新連接到新版本的gcc可執行文件。在正式使用以前還有最後一個工做要作,就是將前面安裝的三個庫的路徑加進環境變量LD_LIBRARY_PATH中,否則在編譯程序的時候會出錯。因爲我不想每次編譯程序都生成環境變量,因此須要編輯/etc目錄下的bash.bashrc文件配置shell環境。在這個文件中添加如下語句:

  LD_LIBRARY_PATH=:/usr/local/mpc- 0.8.1 /lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-2.4.2/lib:/usr/local/gcc-4.5.0/lib
  export LD_LIBRARY_PATH

  保存重啓系統後,就可使用新裝的gcc

 

須要說明的是,gcc的配置選項有不少,具體能夠參考gcc源文件目錄下的安裝說明。這裏只安裝了cc++的編譯器。而後開始make編譯。

在正式使用以前還有最後一個工做要作,就是將前面安裝的三個庫的路徑加進環境變量LD_LIBRARY_PATH中,否則在編譯程序的時候會出錯。因爲我不想每次編譯程序都生成環境變量,因此須要編輯/etc目錄下的bash.bashrc文件配置shell環境。在這個文件中添加如下語句:

LD_LIBRARY_PATH=:/usr/local/mpc- 0.8.1 /lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-2.4.2/lib:/usr/local/gcc-4.5.0/lib

export LD_LIBRARY_PATH

保存重啓系統後,就可使用新裝的gcc了。

須要說明的是,若是make出錯,須要從新configure的話,先運行一下make distclean來清除make的信息,再從新configure

解壓縮*.tar.gz的命令是tar  –zxvf  *.tar.gz

解壓縮*.tar.bz2的命令是tar  -jxvf  *.tar.bz2

安裝完成好之後能夠用 which gcc查看是否安裝好,命令運行後終端顯示出安裝gcc的路徑。

            打完,收工·······

相關文章
相關標籤/搜索