推 uefang:.PHONY是什麼意思? 12/06 10:40
Makefile裡的各個 target 都是以檔案為基礎, 如果該檔案已經存在, 而又沒有
較新的相依條件(prerequisites)的話, 該 target 就不會再次執行. 上例中,
你會發現 target 都是 directory, 在 make 執行時, 這些 directory 已經存在,
又因為沒有相依條件, 因此不會被編譯. 要解決這種情形, 把這些 target 宣告
成 phony target 是一個好方法, make 會把 phony target 視為虛擬的 target
而不去以 target 為檔名(或directory名)去判別 target 是否已被編譯過, 因此
每次打 make 時, 即使有和 target 同名的檔案或 directory 存在, 這些 phony
target 都會被執行.
以 make clean 為例, 如果你的 Makefile 裡沒有 .PHONY: clean , 你可以試著
放一個叫 clean 的檔案進去, 你會發現, 每次打 make clean 時, 都不會做你指
定的 clean 的動作.
總而言之, .PHONY 的用途, 就是解決 Target 及檔名相同時所帶來的衝突.
※ 編輯: phterry 來自: 122.117.199.67 (12/06 14:06)
推 uefang:謝謝... 解釋很清楚.... 感謝您的分享 ^^ 12/06 15:23