CentOS編譯安裝GCC 4.9.2成功

來源:互聯網
上載者:User

標籤:

在Linux上編譯安裝gcc是個尋煩惱的活,對於像我這樣習慣於在Windows上面使用二進位安裝包的人來說,自已編譯安裝gcc是個相當大的挑戰,今天直接挑戰最新版的gcc,是4.9.2版本的,做之前查閱了大量的資料,本次安裝使用的系統是CentOS6.4,內建的gcc是4.4.7版本,具體折騰過成如下:

準備工作,

  到GNU官方FTP下載GCC的源碼包gcc-4.9.2.tar.gz.

  下載下面三個依賴的安裝包,這三個包的版本在gcc-4.9.2/contrib/download_prerequisites指令檔中有指明,按這個裡面指定的版本下載即可:

    ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2

    http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2

    http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz

編譯:

  首先是編譯安裝三個依賴庫,按以下步驟編譯安裝:

    一:解壓gmp-4.3.2.tar.bz2到自已指定的一個目錄比如/home/[你的使用者名稱]/gmp-4.3.2,另外在建一個/home/[你的使用者名稱]/gmp-build目錄,並進入這個目錄,在終端裡執行../gmp-4.3.2/configure --prefix=/usr/local/gmp-4.3.2,--prefix表示後面將要安裝到的目標位置,後面編譯gcc時也要用到這個路徑,執行完成之後在目前的目錄產生makefile檔案,這時可以執行make(開始編譯),接著執行make test(編譯後安裝前的測試,為了省時間,我一般沒有執行這一步),最後執行make install(正式開始把編譯好的檔案安裝到--prefix指定的位置).

    二:安裝mpfr-2.4.2.tar.bz2,方法同上,不過執行configure的具體參數是這樣的../mpfr-2.4.2/configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.3.2,它是要依賴前面的gmp.

    三:安裝mpc-0.8.1.tar.gz方法同上,不過執行configure的具體參數是這樣的../mpc-0.8.1/configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2

  上面三個依賴庫安裝好後,就可以開始編譯安裝gcc-4.9.2.tar.gz了:

    四:其實步驟同安裝上面三個依賴庫是一樣的,還是執行configure的參數不同../gcc-4.9.2/configure --prefix=/usr/local/gcc-4.9.2 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1,這裡的參數是把上面的三個依賴庫加上去了,執行完成之後同樣是產生makefile檔案.

    五:執行make -j4  (-j4是表示啟動四線程,可以充分發揮四核CPU的效能,網上有人用四核CPU開啟4線程編譯只花了半個小時,不過我的電腦配置差,只執行的make花了三個多小時間,呵呵).

    六:make test (我為了省時間,基本上省略這一步了)

    七:make install (開始安裝)

    至此就算編譯安裝完成了.

  其實在上面執行第五步的時候,會遇到這樣的錯誤:“configure: error: cannot compute suffix of object files: cannot compile”,網上調查得到的原因是找不到上面三個依賴的lib位置,所以要在執行第五步之前,先執行這樣一條指令export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gmp-4.3.2/lib:/usr/local/mpc-0.8.1/lib:/usr/local/mpfr-2.4.2/lib,這樣就把三個依賴庫就加入到了環境變數中,再編譯的時候就不會報錯了.

  裝完後,查看一下版本

[[email protected] 案頭]$ g++49 -v
使用內建 specs。
COLLECT_GCC=g++49
COLLECT_LTO_WRAPPER=/usr/local/gcc-4.9.2/libexec/gcc/i686-pc-linux-gnu/4.9.2/lto-wrapper
目標:i686-pc-linux-gnu
配置為:../gcc-4.9.2/configure --prefix=/usr/local/gcc-4.9.2 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1
執行緒模式:posix
gcc 版本 4.9.2 (GCC)
[[email protected] 案頭]$ gcc49 -v
使用內建 specs。
COLLECT_GCC=gcc49
COLLECT_LTO_WRAPPER=/usr/local/gcc-4.9.2/libexec/gcc/i686-pc-linux-gnu/4.9.2/lto-wrapper
目標:i686-pc-linux-gnu
配置為:../gcc-4.9.2/configure --prefix=/usr/local/gcc-4.9.2 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.3.2 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1
執行緒模式:posix
gcc 版本 4.9.2 (GCC)
[[email protected] 案頭]$

CentOS編譯安裝GCC 4.9.2成功

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.