1
最有可能不是,但我一直在努力與這一個小時:這是一個錯誤嗎?
$ cat Makefile
${FILE1}:
touch [email protected]
a: ${FILE1}
${FILE2}: a
touch [email protected]
$ make FILE1=foo FILE2=bar bar
touch foo
touch bar
$ ls
bar foo Makefile
$ make FILE1=foo FILE2=bar bar
touch bar
爲什麼bar
規則仍然激活?
如果我改變Makefile
到:
${FILE1}:
touch [email protected]
${FILE2}: ${FILE1}
touch [email protected]
一切正常,即bar
不會再次感動。
這就是我的想法。但是當添加'.PHONY:a'時,它仍然堅持,所以我認爲這是別的。有沒有解決方法? –
@MiroKropacek:是的,不止一個。你可以消除'a'規則,因爲它什麼都不做。或者你可以引入一個虛擬文件「a」。也許訂單唯一的先決條件會做,但這取決於你實際要做的事情。 – Beta