現在很多程序員都應用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包:
[root@linuxidc]# tar xjvf gcc-4.0.1.tar.bz2 (解壓後生成源目錄/opt/gcc-4.0.1)
2、創建安裝目標目錄:
[root@linux opt]# mkdir /usr/local/gcc-4.0.1/
3、進入安裝目標目錄:
[root@linux opt]# cd /usr/local/gcc-4.0.1/ (這一步很重要,配置安裝文件時,需要在目標目錄下執行configure命令)
[root@linux opt]# pwd
/usr/local/gcc-4.0.1
4、配置安裝文件:
[root@linux 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、編譯安裝文件:
[root@linux gcc-4.0.1]# pwd
/usr/local/gcc-4.0.1
[root@linux gcc-4.0.1]# make (在目標目錄下執行編譯)
6、安裝gcc:
[root@linux gcc-4.0.1]# pwd
/usr/local/gcc-4.0.1
[root@linux 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學習了。
Linux升級GCC 4.8.1清晰簡明教程(Ubuntu 12.04 64位版為例) http://www.linuxidc.com/Linux/2014-04/99583.htm
在CentOS 6.4中編譯安裝GCC 4.8.1 + GDB 7.6.1 + Eclipse 在CentOS 6.4中編譯安裝GCC 4.8.1 + GDB 7.6.1 + Eclipse
Ubuntu下Vim+GCC+GDB安裝及使用 http://www.linuxidc.com/Linux/2013-01/78159.htm
Ubuntu下兩個GCC版本切換 http://www.linuxidc.com/Linux/2012-10/72284.htm
CentOS6.5升級手動安裝GCC4.8.2 http://www.linuxidc.com/Linux/2015-01/112595.htm
GCC 的詳細介紹:請點這裡
GCC 的下載地址:請點這裡
Red Hat Enterprise Linux 6 升級 Red Hat Enterprise Linux 7 經驗分享
Red Hat Enterprise Linux 6.1安裝桌面
Red Hat Enterprise Linux 5.X的圖形安裝
Red Hat Enterprise Linux 5中安裝交叉編譯工具arm-linux-gcc-4.3.2.tgz
在Red Hat Enterprise Linux 5.3安裝RRDTool
在Red Hat Enterprise Linux 5.3安裝NTOP