gcc、g++、make的安裝
前言
《鳥哥的Linux私房菜—基礎學習篇(第三版)》是一本很不錯的Linux使用說明書,也是所有剛開始接觸Linux的人一開始最應該看的一本書,作者用自己細膩的心思為Linux的後來者開啟了一扇窗。
通過對Linux的熟悉之後,我們可以通過跨平臺的QT來增加自己對Linux學習的興趣。如果對網路程式設計比較感興趣的話,可以瞭解一下Libevent庫,可以看看《UNIX環境高階程式設計》、《UNIX網路程式設計卷1:套介面API和X/Open傳輸介面API》、《UNIX網路程式設計卷2:程序間通訊》和《TCP/IP卷1:協議》等書。
如果對硬體比較感興趣,那麼《嵌入式Linux應用開發完全手(韋東山
gcc、g++、make的安裝
作者:(vianowu)
本期關鍵詞: gcc g++ make yum
本期擴充套件關鍵詞:bridge (橋接) NAT(地址翻譯) mirrorlist(映象列表)
平臺: CentOS6.0 VMware Workstation
由於以前用的紅帽軟體企業版5.0不用自己安裝gcc工具,所以我竟然笨笨的以為gcc
1.驗證方法
在安裝好的系統桌面空白處右擊,開啟終端。在命令列中輸入:
#gcc
如果返回資訊是:
bash: qt: command not found
則表示沒有安裝gcc。
如果返回資訊是:
gcc: no input files
則表示已安裝好gcc了。
2.安裝方法
如果沒有安裝gcc,我們應該如何安裝gcc呢?
如果安裝的虛擬機器映象是ubuntu或者還是debian的話,那麼可以參考《嵌入式Linux應用開發完全手(韋東山)》第2章“嵌入式Linux開發環境構建” 第21頁的“apt-get”更新程式列表。如果所安裝的虛擬機器映象是CentOS
以下是在CentOS6.0的環境下執行的相關命令。
首先,網上百度的資料有兩個方法:第一種是下載gcc的安裝包,自己編譯。(這個方法本身有問題,因為gcc安裝包如果要安裝在linux上,也需要編譯,但是此時gcc又還沒有安裝,怎麼編譯呢?所以陷入了先有雞還是先有蛋的邏輯混亂問題了。)
第二種方法是:
安裝gcc工具
#yum –y install gcc
安裝g++工具
#yum –y install gcc-c++
安裝make
#yum install make
命令yum updata主要是完成對程式列表的更新,通過對內部的資料庫更新來確定哪些程式已經安裝、哪些沒有安裝、哪些有新版本。yum將使用這個資料庫來確定怎樣安裝使用者指定的程式,並找到和安裝它所依賴的其他程式。
切記要保證能上網啊!
(檢查網路圖示、ping一下、確認網絡卡連線方式是橋接還是nat)
3.問題解答
安裝方法的實現,需具備以下執行條件:
第一:Linux可以ping通(物理的鏈路層是通的);
如:
# ping ww.baidu.com
PING ps_other.a.shifen.com (220.181.111.85) 56(84) bytes of data.
64 bytes from 220.181.111.85: icmp_seq=1 ttl=53 time=38.3 ms
64 bytes from 220.181.111.85: icmp_seq=2 ttl=53 time=38.0 ms
64 bytes from 220.181.111.85: icmp_seq=3 ttl=53 time=37.9 ms
這說明了網路的物理連線是通的。但不代表就可以上網獲取資料。這個現象猶如有時候在公司可以上QQ聊天,但是打不開網頁。因為主機沒有連上網頁的域名伺服器,解析不了網頁的IP地址,而騰訊的QQ有自己的域名伺服器。
如果沒ping通可以先用ifconfig看一下是否配置了Linux的IP地址。
#ifconfig
如果沒有的話,可以用以下命令設定IP(其中,eth0 還是eth1根據上面ifconfig輸出的資訊知道的)
#sudo ifconfig eth0 192.168.1.17
#sudo ifconfig eth0 down
#sudo ifconfig eth0 up
同時檢視一下,是否沒有連線網路。在網路連結的圖示上左擊檢視是否連線了,沒有連線請連上“system eth0”。
第二:Linux可以開啟網頁(網路是通的);
在我們公司網路的登陸是需要錄入使用者名稱和密碼的。如果我們的Linux虛擬機器的網絡卡(Network Adapte)是用“bridged(橋接)”方式的話,那麼Linux虛擬機器的網路登陸使用者名稱需和windowsXP主機的登陸使用者名稱不同,要不然的話,先登陸的(比如說windowsXP)會給後登陸的(Linux)擠下線(不過,這樣的影響也不大,只是不能同時上網而已,實在要同時上網就多用一個使用者名稱也可以啦)。
而如果是Linux虛擬機器的網絡卡(Network Adapter)是用“NAT(網路地址翻譯網路)”,則可以WindowsXp和Linux同時用一個登陸使用者名稱上網,也可以在我們的主機沒有接網線的時候,Linux虛擬機器和WindowsXP通過網路通訊。
以下是Bridge和NAT兩種網路拓撲結構的簡單描述:
NAT網路連線方式下,PC機的IP地址為10.10.32.205時,虛擬機器V1和V2的IP地址分別為192.168.112.1和192.168.206.1。兩者處於不同網段。此時,PC機為虛擬機器的閘道器,PC和虛擬機器對上一層網路只用一個PC的IP地址。這也是韋東山書中所說的不同網段指的意思。所以才可以同時用一個使用者名稱登陸。
PS:判斷是否同一網段:將PC機的IP地址與子網掩碼“相與”,得到的就是PC機的網段。然後將虛擬機器的IP地址和子網掩碼“相與”,得到虛擬機器的網段。比較兩個網段是否相同。
bridged網路連線方式下,PC機的IP地址為10.10.32.205時,虛擬機器V1和V2的IP地址分別為10.10.32.101和10.10.32.204。兩者處於同一網段。這也是韋東山書中所說的同一網段指的意思。由於各自的IP地址不同,所以需要用不同使用者名稱才能在公司的網路裡同時登陸。
擴散思維:
那麼有的人可能會問怎麼設定這個網絡卡的連線方式呢?在虛擬機器的還沒有開啟的時候,在“Devices”下有一個“Network Adapter(網絡卡)”的選型。
在單擊“Network Adapter(網絡卡)”選項後,彈出對話方塊。
在對話方塊中選擇“NAT”,“ok”就可以將橋接方式改為網路轉換協議了。但是這樣之後,就不能用cuteFTP遠端工具和Linux傳資料了。(詳見第一天)
第三:yum –y install gcc可以開始下載了。
按照以上方式執行的時候,我執行第一步“yum –y install gcc”就出現了“Could not retrieve mirrorlist”不能檢索到映象列表的錯誤提醒。這時候意識到是映象列表更新的問題。
登陸網易開源映象站網站,檢視“centos使用幫助”。下載對應版本的CentOS6-Base-163.repo 檔案。按照網頁的提示,在備份好原本的.repo檔案之後,將網路下載的.repo檔案放Linux虛擬機器的/etc/yum.repos.d資料夾中,(如果有需要的話,需將下載的檔名稱改為CentOS-Base.repo)然後執行yum makecache。http://mirrors.163.com/.help/CentOS6-Base-163.repo
#yum makecache
在執行以上命令之後,還是會有可能出現別的錯誤,它也提示了“suggestion:run yum clean metadata”。
# yum clean metadata
# yum makecache
安裝gcc工具
#yum –y install gcc
安裝g++工具
#yum –y install gcc-c++
安裝make
#yum install make
通過以上步驟就完成了對gcc、g++、make的安裝了。根據網易開源映象站網站上的說明,網站會每五個小時更新一次。如果我們需要對軟體包進行升級的話,可以執行yum updata的命令。
執行的過程中,切記要讓虛擬機器上網啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!