linuxmakefile初學者學習心得_第1頁
linuxmakefile初學者學習心得_第2頁
linuxmakefile初學者學習心得_第3頁
linuxmakefile初學者學習心得_第4頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

溫馨提示

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

評論

0/150

提交評論