.PHONY的用法是忽略與目標相同名稱的檔案,看看下面的例子:
all: gcc main.c -o all
make all會產生all文件,但是卻與編譯目標相同名稱,所以只能編譯第一次,再也無法編譯目標all,如下:
$ make gcc main.c -o all $ make make: 'all' is up to date.
解法就是加上.PHONY關鍵字,如下:
.PHONY: all all: gcc main.c -o all .PHONY: clean clean: touch clean