標籤:
現在很多程式員都應用GCC,怎樣才能更好的應用GCC。目前,GCC可以用來編譯C/C++、FORTRAN、JAVA、OBJC、ADA等語言的程式,可根據需要選擇安裝支援的語言。本文以在Redhat Linux安裝GCC4.9.2為例(因在項目開發過程中要求使用,沒有用最新的GCC版本),介紹Linux安裝GCC過程。
安裝之前,系統中必須要有cc或者gcc等編譯器,並且是可用的,或者用環境變數CC指定系統上的編譯器。如果系統上沒有編譯器,不能安裝原始碼形式的GCC 4.9.2。如果是這種情況,可以在網上找一個與你系統相適應的如RPM等二進位形式的GCC軟體包來安裝使用。本文介紹的是以原始碼形式提供的GCC軟體包的安裝過程,軟體包本身和其安裝過程同樣適用於其它Linux和Unix系統。
系統上原來的GCC編譯器可能是把gcc等命令檔案、庫檔案、標頭檔等分別存放到系統中的不同目錄下的。與此不同,現在GCC建議我們將一個版本的GCC安裝在一個單獨的目錄下。這樣做的好處是將來不需要它的時候可以方便地刪除整個目錄即可(因為GCC沒有uninstall功能);缺點是在安裝完成後要做一些設定工作才能使編譯器工作正常。在本文中採用這個方案安裝GCC 4.9.2,並且在安裝完成後,仍然能夠使用原來低版本的GCC編譯器,即一個系統上可以同時存在並使用多個版本的GCC編譯器。
按照本文提供的步驟和設定選項,即使以前沒有安裝過GCC,也可以在系統上安裝上一個可工作的新版本的GCC編譯器。
1 下載
在GCC網站上(http://gcc.gnu.org)或者通過網上搜尋可以尋找到下載資源。目前GCC的最新版本為 4.9.2。可供下載的檔案一般有兩種形式:gcc-4.9.2.tar.gz和gcc-4.9.2.tar.bz2,只是壓縮格式不一樣,內容完全一致,下載其中一種即可。
RHLinux下安裝gcc-4.9.2方法比較簡單,但是安裝過程中有些環節是需要注意的,否則,可能會導致安裝不成功,或者安裝報錯。具體安裝過程如下:
首先,下載並解壓縮gcc的RPM包至來源目錄(如/opt/gcc-4.0.1)
1、解壓縮RPM包:
[[email protected]]# tar xjvf gcc-4.0.1.tar.bz2 (解壓後產生來源目錄/opt/gcc-4.0.1)
2、建立安裝目標目錄:
[[email protected] opt]# mkdir /usr/local/gcc-4.0.1/
3、進入安裝目標目錄:
[[email protected] opt]# cd /usr/local/gcc-4.0.1/ (這一步很重要,配置安裝檔案時,需要在目標目錄下執行configure命令)
[[email protected] opt]# pwd
/usr/local/gcc-4.0.1
4、配置安裝檔案:
[[email protected] gcc-4.0.1]# /opt/gcc-4.0.1/configure --prefix=/usr/local/gcc-4.0.1/ (這一步非常重要,需要在安裝的目標目錄下,執行來源目錄 /opt/gcc-4.0.1/中的configure命令,配置將gcc安裝到目標目錄/usr/local/gcc-4.0.1/)
creating cache ./config.cache
checking host system type... i686-pc-linux-gnu
5、編譯安裝檔案:
[[email protected] gcc-4.0.1]# pwd
/usr/local/gcc-4.0.1
[[email protected] gcc-4.0.1]# make (在目標目錄下執行編譯)
6、安裝gcc:
[[email protected] gcc-4.0.1]# pwd
/usr/local/gcc-4.0.1
[[email protected] gcc-4.0.1]# make install (在目標目錄下執行安裝)
如果安裝過程中步驟和命令沒有錯誤,你肯定能安裝成功。
從svn checkout svn://gcc.gnu.org/svn/gcc/trunk拿了GCC的最新代碼,打算編譯了學東西習學習C++ 11的東西,結果在configure的時候出現如下問題:
Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
1、從http://www.multiprecision.org/index.php?prog=mpc&page=download
下載mpc-0.9.tar.gz
2、ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.bz2下載gmp-5.0.1.tar.bz2
3、http://ftp.gnu.org/gnu/mpfr/下載mpfr-3.1.0.tar.xz。
先開始安裝GMP。解壓GMP的壓縮包後,得到原始碼目錄gmp-5.0.1。在該目錄的同級目錄下建立一個臨時的編譯目錄,這裡命名為temp。然後開始配置安裝選項,進入temp目錄,輸入以下命令進行配置:
../gmp-5.0.1/configure --prefix=/usr/local/gmp-5.0.1
make
sudo make install
mpfr和mpc的安裝方法與gmp類似。不過要注意配置的時候要把gmp與mpfr的依賴關係選項加進去,具體配置命令如下:
../mpfr-3.1.0/configure --prefix=/usr/local/mpfr-3.1.0 --with-gmp=/usr/local/gmp-5.0.1
../mpc-0.9/configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0
安裝好這三個庫之後,就可以正式開始安裝gcc了。
當然了連結的時候,需要剛剛編譯的3個lib。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-3.1.0/lib
然後是典型的configure,make,install三步曲。
../trunk/configure --prefix=/usr/local/gcc-4.7 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++
--with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --with-mpc=/usr/local/mpc-0.9
make
make check(可選)
sudo make install
經過漫長的等待:
/usr/local/gcc-4.7/bin/g++ -v
使用內建 specs。
COLLECT_GCC=/usr/local/gcc-4.7/bin/g++
COLLECT_LTO_WRAPPER=/usr/local/gcc-4.7/libexec/gcc/x86_64-unknown-linux-gnu/4.7.0/lto-wrapper
目標:x86_64-unknown-linux-gnu
配置為:../trunk/configure --prefix=/usr/local/gcc-4.7 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --with-mpc=/usr/local/mpc-0.9
執行緒模式:posix
gcc 版本 4.7.0 20120113 (experimental) (GCC)
開始C++ 11學習了。
Red Hat Enterprise Linux Server 6.5安裝gcc 4.9.2