Make
制定多個目標
我有這個 Makefile:
P5.obj P5.sym: P5.asm lc3as P5.asm
如果 P5.obj 或 P5.sym 已過期,我希望彙程式序執行。但是,刪除 P5.sym 不會導致它重新生成。
我究竟做錯了什麼?
(我假設
lc3as P5.asm
將生成文件P5.obj
和P5.sym
。假設您嘗試執行make
。)預設目標是第一個目標,除非您沒有指定它(取決於 make-dialect)。
例如:
# Makefile a b: echo a > a echo b > b
如果你同時執行
make
這兩個文件a
並且b
將被創建。如果您刪除b
並執行make
:`a' is up to date.
因為
a
目標是預設值。一般的解決方案是創建一個名稱
all
在開頭的目標Makefile
:all: a b a b: echo a > a echo b > b .PHONY: all
在這種情況下,如果您刪除
b
將make
重新生成它(因為預設目標是all
並且它的依賴項是a
andb
)。