close

 

有關Makefile的用法可參考此網頁

http://blog.blueshop.com.tw/phpman/archive/2005/07/17/10314.aspx

什麼是 .PHONY
Phony表示目標不是產生檔案, 而是執行動作
例如編寫一個規則,並不產生目標檔案,而是執行刪除的動作。
clean:
rm *.o 
因為'rm'命令並不產生'clean'文件,則每次執行'make clean'的時候,該命令都會執行。

但是如果目錄中有'clean'文件,則規則就會失效, 因為clean'始終是最新的,則命令永遠不會執行;為避免這個問題,可使用'.PHONY'指明該目標。如:
.PHONY : clean
這樣執行'make clean'會無視'clean'文件存在與否。

Phony目標可以有依賴關係。當一個目錄中有多個程序將其放在一個makefile中會更方便。缺目標是makefile中的第一個目標,通常將這個phony目標叫做'all',其依賴文件為各個程序:
all : prog1 prog2 prog3
.PHONY : all
prog1 : prog1.o utils.o
cc -o prog1 prog1.o utils.o
prog2 : prog2.o
cc -o prog2 prog2.o
prog3 : prog3.o sort.o utils.o
cc -o prog3 prog3.o sort.o utils.o
這樣,使用'make'將可以將三個程序都生成了。

arrow
arrow
    全站熱搜

    hfchou 發表在 痞客邦 留言(0) 人氣()