linuxmakefile初學(xué)者學(xué)習(xí)心得_第1頁
linuxmakefile初學(xué)者學(xué)習(xí)心得_第2頁
linuxmakefile初學(xué)者學(xué)習(xí)心得_第3頁
linuxmakefile初學(xué)者學(xué)習(xí)心得_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、linux makefile初學(xué)者學(xué)習(xí)心得在學(xué)習(xí)linux系統(tǒng)中認識到了 makefile是必須要掌握 的,一開始對于 makefile不理解,經(jīng)過幾天的學(xué)習(xí)對makefile 也有了一定的理解: 一、Makefile 的作用: makefile 關(guān)系到整個工程的編譯規(guī)則,一個工程文件 不計其數(shù),其按類型,功能,模塊分別放在不同的目錄下, makefile定義了一些規(guī)則來指定,哪些文件需要先編譯,哪些文件需要重新編譯,甚至進行更復(fù)雜的功能操作,因為 makefile就像一個shell腳本一樣,其中也可以執(zhí)行操作系 統(tǒng)命令。也就是通過 makefile規(guī)則編寫makefile文件來實 現(xiàn)執(zhí)行文件

2、的生成,makefile 對于多個文件生成的執(zhí)行文 件,若有某個發(fā)生改變后,makefile可以發(fā)現(xiàn)直接去編譯,從而減少了從頭開始編譯的時間,提高編譯效率,同時也可 以很方便的修改文件,添加或者刪去某些文件。二、Makefile 的規(guī)則:1. 隱晦規(guī)則:就是利用make的 自動推導(dǎo)的功能2. 顯示規(guī)則:就是顯示的在命令行中寫出目標文件的 依賴關(guān)系3.變量的定義:就變量的宏替換4.文件指示:其中包括三部分的內(nèi)容,一個是在一個 makefile 中引用另一個 makefile,就像c語言中的include 一樣;另一個是根據(jù)某些情況指定makefile中的有效部分,就像c語言的預(yù)編譯#ifdef

3、樣;還有一個就是定義一個多 行的命令。5.注釋:只有行注釋用#號字符注釋如果你的makefile中用到了 #你可以用“ # “轉(zhuǎn)義一、把源代碼編譯成目標代碼一般是一個規(guī)則。二、把所有中間文件編譯鏈接在一起也是一個規(guī)則。編譯需要一定的依賴文件,例如把一個.c文件編譯為一 個可執(zhí)行文件,則一般是通過:先有.c再到.0然后到 執(zhí)行文件 例子:#要想生成目標,必須先有,然后調(diào)用命令行 gcc編譯生成依賴對象:gcc c 0要想生成執(zhí)行程序hello,必須先執(zhí)行規(guī)則,然后調(diào)用命令行g(shù)cc鏈接生成hello hello:gcc - o hello在例子中要依賴調(diào)用gcc編譯器才能生成,執(zhí)行文件hello要

4、依賴Makefile可以理解為make程序進行解釋的一種特殊腳 本。首先make找到Makefile 的入口規(guī)則,一般是all,或者 是用戶在命令行指定的target順著入口規(guī)則的依賴對象查找下去,檢查一直查找到最終的目標,即只有被依賴而沒有依賴其它對象的目標.即終目標從最終目標順著依賴關(guān)系依次執(zhí)行到入口規(guī)則,中間只有運行命令出錯,才停止執(zhí)行.如果是依賴文件,make會自動檢測最后更新時間,只會 去執(zhí)行已經(jīng)修改過的文件,以此來減少編譯時間三、在makefile 也可以定義變量。如賦值:定義變量可在規(guī)則中使用,Makefile 中使用變量Makefile 中的變量就像是 c語言的中宏一樣 怎樣定 義變量呢?我們在makefile 最上面定義一個變量OBJS =引用變量$(OBJS)這就等價于就像宏一樣的會被替換掉,等價后如果一個生成文件需要依賴多個.0文件,則可用$(OBJS)代替。Makefile還有自推導(dǎo),判斷源代碼的依賴關(guān)系的功能, 也就是不用我們?nèi)榱?.0文件而編寫其他命令,例如:只要make看到一個*.o文件,它就會自動的把*.c 文件 加到 依賴關(guān)系中,如果 make 找到一個 那么就會使的依賴文件。并且 gcc - c也會被推導(dǎo)出來。所以我們的makefile就會簡單多了在編寫 makefile 是也有很多小細節(jié)值得注意,最為重 要的一點就是命開頭的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論