一
YUM 安裝 GCC
不錯的GCC編譯過程 CentOSX64-V6.4系統下GCC-4.8 源碼編譯記錄
二
VMWare_Centos安裝GCC,g++,gdb
VMWare_Centos安裝GCC,g++,gdb
CentOS 是開源的類linux 是Redhat(商業版) 的開源版 ,RedHat是我接觸到的第一個linux ,後面接觸了很多linux 的開源版本,發現CentOs 非常好,也是現在企業用的很多的一個開源版本。
由于在虛拟機中是裝的 CentOS6.4桌面版,沒有裝gcc,g++,gdb,導緻裝一些軟體時安裝不了,現在方法記在此:
1.先在VMWare 中
選擇第一個安裝DVD.iso , 注意上面兩個都要打勾,
然後在你的 虛拟機中就能看到CentOS6.4_Final
2. 起一個終端,進入到:
/media/CentOS_6.4_Final
裡面就有内容了,因為GCC,g++,gdb 都有很多的 依賴包 ,如果用rpm 來安裝的話,要安裝很多,
中間會有報錯, 是以就用 YUM 來安裝, 又YUM 要到網上去下載下傳包,如果虛拟機中不能上網,就用如下方式,給YUM 配一個 本地源
配置如下:
1、虛機挂在DVD.iso檔案,能夠在media目錄裡看到CentOS_6.4_Final目錄
2、編輯/etc/yum.repo.d下的CentOS-Media.repo檔案
cd /etc/yum.repos.d/ #進入yum配置目錄
vi CentOS-Media.repo #編輯配置檔案,添加以下内容
[XXXXX]
name=CentOS-$releasever - Media #自定義名稱
baseurl=file:///media/CentOS_6.4_Final #本地CD光牒挂載路徑
gpgcheck=0 #檢查GPG-KEY,0為不檢查,1為檢查
enabled=1 #啟用yum源,0為不啟用,1為啟用
3、CentOS需要将/etc/yum.rpos.d/目錄下的CentOS-Base.repo和CentOS-Debuginfo.repo檔案進行改名,
這樣就可以繞過網絡進行本地源的安裝。具體指令如下:
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo123
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo123
4、清除yum緩存,使用yum install自動安裝軟體
yum clean all #清除yum緩存
yum install php #安裝php
yum install gcc
yum install gcc-c++
yum install gdb
5、安裝:yum install php #php是安裝組建的名稱
6、如果不需要以CD光牒為源進行軟體安裝時,隻需要将/etc/yum.repos.d目錄下的
CentOS-Base.repo123和CentOS-Debuginfo.repo123檔案改回原來的名字就可以了。
三
衆所周知:CentOS雖然好用,但是它自己的yum源很小也比較滞後,安裝工具往往需要自己下載下傳源碼編譯。(貌似RedHat和Fedora的源中el版本一緻的rpm也可以用,但是沒有試過)
其他工具慢一點也就算了,最讓人不能認的就是它的gcc版本居然也這麼滞後,到現在(2012-12-21)最新的CentOS版本是6.3,官方源上最新的gcc版本是4.4.6!而現在gcc的最新穩定版本是4.7.2,開發版已經到了4.8!
了解c++的朋友都知道,這段版本更新的時間正是各種編譯器們想c++11标準飛速靠近的時期,也是越來越多的人來時使用c++11特性的時期,是以更新一個功能更完善的gcc實在不行。
好了,重要性談完了,下面開始談正事。
相關閱讀:
VMware虛拟機安裝CentOS 6.3 見 http://www.linuxidc.com/Linux/2012-12/76583.htm
樓主的環境是CentOS 6.3版,使用預設的gcc 4.4.6,編譯安裝gcc 4.7.2。
網上關于更新編譯gcc的教程中步驟很多也很繁瑣,慘痛的過程我就不說了,我隻說一點,其實事情可以很簡單。
首先是依賴的庫,官方文檔說需要gmp、mpc、mpfr,并且提供了下載下傳位址,很多教程都說了自己編譯安裝,以及這一過程中的一些問題,其實完全不必這麼麻煩。難道大家就沒有想過gcc作為一個發展多年且很成熟的項目,難道就沒有提供一些自動化的解決方案嗎?
步驟1:
yum install glibc-static libstdc++-static -y
安裝c和c++的靜态庫(據說如果系統中缺少libc.a和libstdc++.a編譯時會出錯,但是我沒有那麼多閑情逸緻去試,實踐過的朋友可以回複一下,分享一下經驗,讓大家都長長見識)
步驟2:
下載下傳解壓gcc,我的gcc目錄是gcc-4.7.2。
步驟3:
進入gcc目錄,執行:
./contrib/download_prerequisites
這個神奇的腳本檔案會幫我們下載下傳、配置、安裝那三個依賴的庫。可以節約我們大量的時間和精力。
步驟4:
你以為這三個庫自動下載下傳了、自動make install了就沒事了嗎?錯!
很多人在編譯gcc的時候出現各種奇奇怪怪的錯誤就是這步沒有做好。
它們還不在.so檔案的搜尋路徑裡面,需要加進去,最後切記切記一定要執行一下ldconfig。
大緻做法為:
1,找到你的共享庫檔案被install到哪個目錄了(updatedb+locate指令)。
2,如果你的庫不是直接放在/lib或/usr/lib下,需要修改/etc/ld.so.conf檔案,加入你的共享庫的路徑
3,如果在2中添加了共享庫路徑,切記要執行一下ldconfig,更新響應cache檔案讓系統能找到你的共享庫。
步驟5:
建立臨時目錄,這個目錄用以存放編譯時的大量臨時檔案,是文檔要求中必須的。
我是在gcc-4.7.2下建立了一個名為build的目錄,進入它。
mkdir build
cd build
步驟6:
配置gcc編譯選項
強烈建議閱讀INSTALL目錄下的說明文檔,尤其是configure.html,以确定你的編譯選項。
比較基本的選項有--enable-languages,說明你要讓你的gcc支援那些語言,--disable-multilib不生成編譯為其他平台可執行代碼的交叉編譯器。--disable-checking生成的編譯器在編譯過程中不做額外檢查,也可以使用--enable-checking=xxx來增加一些檢查。
網上還說了什麼--with-gmp、--with-mpfr、--with-mpc這三個選項,但是如果你3,4步做好了,就不要配了,反之你還是老實點吧别抱僥幸心理了。
調用gcc-4.7.2目錄下的configure檔案:
例如:
../configure --disable-checking --disable-multilib --enable-languages=c,c++
步驟7:
執行
../make #不解釋
#你就等吧少年,建議晚上睡覺前做
../make install #完事!