天天看點

Makefile項目管理

基本規則

1.若想生成目标,檢查規則中的依賴條件是否存在,如不存在,則尋找是否有規則用來生成該依賴檔案。

2.檢查規則中的目标是否需要更新,必須先檢查它的所有依賴,依賴中有人一個被更新,則目标必須更新

  • 分析各個目标和依賴之間的關系

    (目标的時間必須晚于依賴的時間)

  • 根據依賴關系自底向上執行指令

    (預設第一個目标就是終極目标,但是ALL:可以指定終極目标比如ALL:a.out)

  • 根據又該時間比目标新,确定更新
  • 如果目标不依賴任何條件,則執行對應指令,以示更新

目标:依賴條件

指令

makefile命名必須是makefile或Makefile

Makefile項目管理

多個檔案的時候,有時候隻更改一個檔案,其他檔案沒有動,還是要重新make

Makefile項目管理

兩個重要函數

Makefile項目管理

注意第二個:是替換,這些都是字元串,而不是把.c編譯成.o

小技巧:make的指令中加個-n可以顯示指令但不執行

小技巧:rm前面加個-變成-rm,這樣在不小心删除了一個.o檔案之後,make clean全部删除也不會因為缺失了剛剛删除的.o檔案而報錯

三個變量

Makefile項目管理
Makefile項目管理

補充

Makefile項目管理

防止産生歧義,使用靜态模式規則

.PHONY防止clean重名

eg:

.PHONY:clean ALL

makefile練習