我們知道,關於 GCC 在 CentOS 下通過 yum 安裝默認版本號,CentOS 5 是 4.1.2;CentOS 6 是 4.4.7;CentOS 7 是 4.8.3。
很多時候在編譯安裝軟件都需要高版本的 GCC,否則就會報錯。
那麼如何升級 GCC 的版本呢?
首先要確認升級到的 GCC 版本號。
目前 GCC 的最新版已經到了 5.2,而 CentOS 7 則依然使用其 4.8,所以基於兼容性考慮,我選擇升級到 4.8.5。
GCC 官網:https://gcc.gnu.org
下面開始一步一步來編譯安裝 GCC 4.8.5,需要注意的是,在編譯安裝 GCC 之前,系統裡必須先要通過 yum 安裝老版本的 GCC 和依賴庫。
如果是在 x86_64 系統下編譯的話,還需要安裝 libgcc.i686 glibc-devel.i686 才行。
yum install -y gcc texinfo-tex flex zip libgcc.i686 glibc-devel.i686
當然,如果是在 CentOS 5 x86_64 系統下安裝,則是如下命令:
yum install -y gcc texinfo-tex flex zip libgcc.i386 glibc-devel.i386
同時需注意,編譯安裝 GCC 內存不小於 1GB,Swap 不小於 1GB,硬盤最低不小於 10GB,否則極有可能會中途報錯退出。
編譯安裝完後,目錄 gcc-4.8.5 將會有 5GB 之多。
1、下載源碼
wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz
2、下載依賴包
編譯安裝 GCC 需要依賴 mpc,mpfr,gmp包。好在 GCC 源碼裡自帶腳本可以輕松下載依賴包。
tar zxf gcc-4.8.5.tar.gzcd gcc-4.8.5./contrib/download_prerequisites
在此腳本裡可以看到依賴包的版本號依次是 mpc-0.8.1,mpfr-2.4.2,gmp-4.3.2。
3、編譯安裝
mkdir gcc-build-4.8.5cd gcc-build-4.8.5../configure --prefix=/usrmake && make install
為了避免安裝後系統裡出現多個版本的 GCC,這裡直接將編譯安裝的目錄指定為 /usr,如果不指定 –prefix,則會默認安裝到 /usr/local 下。
GCC 4.8.5 光是源代碼就有105MB,因此可以預見整個編譯過程需要很長時間(差不多 2 個小時左右)。
4、查看版本號
gcc --versiongcc (GCC) 4.8.5g++ --versiong++ (GCC) 4.8.5which gcc/usr/bin/gccwhich g++/usr/bin/g++
注:本次是在 CentOS 6.7 x86_64 下安裝成功。
5、測試程序
cd ~
創建一個 main.cpp 文件,內容如下:
#include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; return 0; }
編譯 main.cpp,執行如下命令:
g++ main.cpp -o main
執行生成的文件:
./main
輸出如下:
Hello world!
寫在最後
通過 rpm 命令查詢 GCC 包的安裝情況:
rpm -qa | grep gcc
輸出如下:
gcc-4.4.7-16.el6.x86_64
libgcc-4.4.7-16.el6.x86_64
libgcc-4.4.7-16.el6.i686
gcc-c++-4.4.7-16.el6.x86_64
因此通過以上步驟編譯安裝 GCC 後,請慎用 yum update 或者通過 yum 來升級 GCC 的命令。
轉載請注明:秋水逸冰»在CentOS下編譯安裝GCC
http://www.bkjia.com/Linuxjc/1196008.htmlwww.bkjia.comtrue