歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> 學習Linux

CentOS下編譯安裝GCC

CentOS下編譯安裝GCC


熱度2 評論 107 www.BkJia.Com  網友分享於:  2017-02-28 06:02:10     浏覽數1114次

CentOS下編譯安裝GCC



我們知道,關於 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

Copyright © Linux教程網 All Rights Reserved