1.targets : PRerequisites command 2.通配符 3.變量,使用$(變量)來引用 4.VPATH make尋找文件的依賴關系時
5.makefile的文件名 包含其他makefile文件
6. clean編譯和鏈接生成了很多文件,如果重新編譯就需要提供命令腳本. .PHONY: clean clean: rm *.o temp clean是偽目標.
7.多目標
8.自動化變量 $@ 靜態模式,展示了很強大的特性.
9.顯示makefile中的命令 make -n
10.命令的執行 如果你要讓上一條命令的結果應用在下一條命令時,你應該使用分號分隔這兩條命令。
11,命令運行后,make會檢測每個命令的返回碼,如果成功則繼續執行,如果失敗則返回. 如果想忽略命令的錯誤,繼續想下執行,有幾個版本.比如在命令前加上”-“
12.在一些大的工程中,我們會把我們不同模塊或是不同功能的源文件放在不同的目錄中,我們可以在每個目錄中都書寫一個該目錄的Makefile,這有利于讓我們的Makefile變得更加地簡潔,對于工程的后續維護也很有意義.
還有一個在“嵌套執行”中比較有用的參數,“-w”或是“–print-directory”會在make的過程中輸出一些信息,讓你看到目前的工作目錄。比如,如果我們的下級make目錄是“/home/hchen/gnu/make”,如果我們使用“make -w”來執行,那么當進入該目錄時,我們會看到: make: Entering directory /home/hchen/gnu/make'. 而在完成下層make后離開目錄時,我們會看到: make: Leaving directory
/home/hchen/gnu/make’ 當你使用“-C”參數來指定make下層Makefile時,“-w”會被自動打開的。如果參數中有“-s”(“–slient”)或是“–no-print-directory”,那么,“-w”總是失效的。
13.變量的定義和使用 = 和 :=
14.變量替換技術 foo := a.o b.o c.o bar :=
makefile還有很多高級的技巧,我目前用到的比較少,以后碰到makefile的高級使用技巧再更新到文章中來.
新聞熱點
疑難解答