深入理解linux軟件配置、編譯及安裝

深入理解linux軟件配置、編譯及安裝

ID:30436842

大小:83.91 KB

頁數(shù):9頁

時間:2018-12-29

深入理解linux軟件配置、編譯及安裝_第1頁
深入理解linux軟件配置、編譯及安裝_第2頁
深入理解linux軟件配置、編譯及安裝_第3頁
深入理解linux軟件配置、編譯及安裝_第4頁
深入理解linux軟件配置、編譯及安裝_第5頁
深入理解linux軟件配置、編譯及安裝_第6頁
深入理解linux軟件配置、編譯及安裝_第7頁
深入理解linux軟件配置、編譯及安裝_第8頁
深入理解linux軟件配置、編譯及安裝_第9頁
資源描述:

《深入理解linux軟件配置、編譯及安裝》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、深入理解Linux軟件配置、編譯及安裝從源代碼安裝過軟件的朋友一定對./configure&&make&&makeinstall安裝三步曲非常熟悉了。然而究竟這個過程中的每一步幕后都發(fā)生了些什么呢?本文將帶領(lǐng)你一探究竟。深入理解這個過程將有助于你在LFS的基礎(chǔ)上玩出自己的花樣來。不過需要說明的是本文對Makefile和make的講解是相當(dāng)近視和粗淺的,但是對于理解安裝過程來說足夠了。用一句話來解釋這個過程就是:根據(jù)源碼包中Makefile.in文件的指示,configure腳本檢查當(dāng)前的系統(tǒng)環(huán)境和配置選項(xiàng),在當(dāng)前目錄中生成Makefile

2、文件(還有其它本文無需關(guān)心的文件),然后make程序就按照當(dāng)前目錄中的Makefile文件的指示將源代碼編譯為二進(jìn)制文件,最后將這些二進(jìn)制文件移動(即安裝)到指定的地方(仍然按照Makefile文件的指示)。由此可見Makefile文件是幕后的核心。要深入理解安裝過程,必須首先對Makefile文件有充分的了解。本文將首先講述Makefile與make,然后再講述configure腳本。并且在講述這兩部分內(nèi)容時,提供了盡可能詳細(xì)的、可以運(yùn)用于實(shí)踐的參考資料。Makefile與make用一句話來概括Makefile與make的關(guān)系就是:Ma

3、kefile包含了所有的規(guī)則和目標(biāo),而make則是為了完成目標(biāo)而去解釋Makefile規(guī)則的工具。make語法首先看看make的命令行語法:make[options][targets][VAR=VALUE].[options]是命令行選項(xiàng),可以用make--help命令查看全部,[VAR=VALUE]是在命令行上指定環(huán)境變量,這兩個大家都很熟悉,將在稍后詳細(xì)講解。而[targets]是什么呢?字面的意思是"目標(biāo)",也就是希望本次make命令所完成的任務(wù)。憑經(jīng)驗(yàn)猜測,這個[targets]大概可以用"ckeck","install"之類(也

4、就是常見的測試和安裝命令)。但是它到底是個啥玩意兒?沒有任何參數(shù)的make命令是什么意思?為什么在安裝LFS工具鏈中的Perl-5.8.8軟件包時會出現(xiàn)"makeperlutilities"這樣怪異的命令?要回答這些問題必須首先理解Makefile文件中的"規(guī)則"。Makefile規(guī)則Makefile規(guī)則包含了文件之間的依賴關(guān)系和更新此規(guī)則目標(biāo)所需要的命令。一個簡單的Makefile規(guī)則是這樣寫的:TARGET:PREREQUISITESCOMMANDTARGET規(guī)則的目標(biāo)。也就是可以被make使用的"目標(biāo)"。有些目標(biāo)可以沒有依賴而只有動

5、作(命令行),比如"clean",通常僅僅定義一系列刪除中間文件的命令。同樣,有些目標(biāo)可以沒有動作而只有依賴,比如"all",通常僅僅用作"終極目標(biāo)"。PREREQUISITES規(guī)則的依賴。通常一個目標(biāo)依賴于一個或者多個文件。COMMAND規(guī)則的命令行。一個規(guī)則可以有零個或多個命令行。OK!現(xiàn)在你明白[targets]是什么了,原來它們來自于Makefile文件中一條條規(guī)則的目標(biāo)。另外,Makefile文件中第一條規(guī)則的目標(biāo)被稱為"終極目標(biāo)",也就是你省略[targets]參數(shù)時的目標(biāo)。當(dāng)你查看一個實(shí)際的Makefile文件時,你會發(fā)現(xiàn)有

6、些規(guī)則非常復(fù)雜,但是它都符合規(guī)則的基本格式。此外,Makefile文件中通常還包含了除規(guī)則以外的其它很多東西,不過本文只關(guān)心其中的變量。Makefile變量Makefile中的"變量"更像是C語言中的宏,代表一個文本字符串(變量的值),可以用于規(guī)則的任何部分。變量的定義很簡單:VAR=VALUE;變量的引用也很簡單:$(VAR)或者${VAR}。變量引用的展開過程是嚴(yán)格的文本替換過程,就是說變量值的字符串被精確的展開在變量被引用的地方。比如,若定義:VAR=c,那么,"$(VAR)$(VAR)-$(VAR)VAR.$(VAR)"將被展開為

7、"cc-cVAR.c"。雖然在Makefile中可以直接使用系統(tǒng)的環(huán)境變量,但是也可以通過在Makefile中定義同名變量來"遮蓋"系統(tǒng)的環(huán)境變量。另一方面,我們可以在調(diào)用make時使用-e參數(shù)強(qiáng)制使系統(tǒng)中的環(huán)境變量覆蓋Makefile中的同名變量,除此之外,在調(diào)用make的命令行上使用VAR=VALUE格式指定的環(huán)境變量也可以覆蓋Makefile中的同名變量。Makefile實(shí)例下面看一個簡單的、實(shí)際的Makefile文件:CC=gccCPPFLAGS=CFLAGS=-O2-pipeLDFLAGS=-sPREFIX=/usrall:pr

8、og1prog2prog1:prog1.o$(CC)$(LDFLAGS)-oprog1prog1.oprog1.o:prog1.c$(CC)-c$(CFLAGS)prog1.cprog2:pr

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。