程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> CentOS 6.6x64下編譯gcc-4.7.4,centosgcc-4.7.4

CentOS 6.6x64下編譯gcc-4.7.4,centosgcc-4.7.4

編輯:關於C語言

CentOS 6.6x64下編譯gcc-4.7.4,centosgcc-4.7.4


最近使用老版本的gcc發現一些問題,於是想嘗試升級。

看了一些教程之後進行嘗試,發現各類教程均會有一些小問題,於是在此記錄一下本人的過程。

編譯過程中參考的文章有如下幾篇,在此表示感謝: 

http://blog.csdn.net/dyllove98/article/details/8917485

http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/05/2199530.html

http://www.linuxidc.com/Linux/2015-01/112595.htm

好了,下面進入正題。

1、准備工作

到gcc官方ftp下載自己需要的gcc版本,我下載的版本是4.7.4,同時也下載了4.9.3和5.3.0。

http://ftp.gnu.org/gnu/gcc/

先下載一個4.7.4版本的bz2壓縮包,下載完畢後解壓:

$ tar -xf gcc-4.7.4.tar.bz2
$ cd gcc-4.7.4

 

2、編譯依賴庫

代碼下載完畢後,編譯gcc時需要一些依賴庫,其中gmp、mpfr、mpc是比較關鍵的庫。這三個庫要依次安裝下載,下載的方式比較簡單,如下一行代碼搞定。

./contrib/download_prerequisites

然後是編譯這三個關鍵的庫了(由於庫的安裝需要root權限,所以先切換到root權限):

(1)安裝gmp4.3.2
# cd gmp
# ./configure --prefix=/usr/local/gmp
# make  (編譯)
# make install  (執行安裝)
(2)安裝mpfr
# cd ../mpfr
# ./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp(注意配置的時候要把依賴關系選項加進去)
# make
# make  install
(3)安裝mpc0.8.1
# cd ../mpc
# ./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr
# make
# make install

  
 這裡第3步的時候,可能會出現gmp庫找不到的問題了,應該特別注意 --with命令前面是兩個減法符號。

與此同時,如果仍然出現錯誤,建議設置一下環境變量 LD_LIBRARY_PATH,一個示例設置方法是在/etc/profile的最後,插入中間的幾行代碼,然後更新:

# vim /etc/profile
# LD_LIBRARY_PATH=/usr/local/gmp/lib:/usr/local/pfmr/lib:/usr/lib/mpc/lib:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
# source /etc/profile

   

3、編譯gcc

注意這裡直接在gcc的代碼目錄下進行configure,否則可能引起gmp庫找不到等問題或者被提示需要執行 make distclean。

 為了加快編譯速度,make命令後面,可以增加 -j16(數值16)表示線程數量,根據自己的機器設置,好一些的機器大概十五分鐘可以編譯完畢。

# ./configure --prefix=/usr/local/gcc-4.7.4 --enable-threads=posix --disable-multilib -enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc
# make -j16 
# make install

編譯成功,沒有什麼錯誤提示,出現一些 Leaving directory的字樣表明已經編譯成功。

然後執行 make install即可。

安裝的目錄如下:

# make install
# ls /usr/local/gcc-4.7.4/
bin  include  lib  lib64  libexec  share

 

4、默認gcc版本的設置

參考這篇文章進行默認gcc的設置: http://www.linuxidc.com/Linux/2012-10/72284.htm

首先,查看原來的gcc所在的路徑:

$ witch gcc

我的系統上,上述命令顯示:/usr/bin/gcc,即原來的gcc命令在/usr/bin目錄下。

為了能讓原有的gcc仍然使用,將gcc/g++重命名一下:

 

# mv /usr/bin/gcc /usr/bin/gcc-4.4
# mv /usr/bin/g++ /usr/bin/g++-4.4 

  

然後創建gcc的不同版本的可選鏈接(對g++的操作只需替換相應的gcc為g++即可): 

# sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-4.7.4/bin/gcc 50
# sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/gcc-4.9.3/bin/gcc 40
# sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 30
# sudo update-alternatives --config gcc
共有 3 個程序提供“gcc”。

  選擇    命令
-----------------------------------------------
*+ 1           /usr/local/gcc-4.7.4/bin/gcc
   2           /usr/local/gcc-4.9.3/bin/gcc
   3           /usr/bin/gcc-4.4

  想刪除某個選項的話,可以執行類似的指令 

$ sudo update-alternatives --remove gcc /usr/bin/gcc-4.4

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved