假想目標

假想目標並不是一個真正的檔案名,它僅僅是您制定的一個具體規則所執行的一些命令 的名稱。使用假想目標有兩個原因:避免和具有相同名稱的檔衝突和改善性能。 如果您寫一個其命令不創建目標檔的規則,一旦由於重建而提及該目標,則該規則的命 令就會執行。這裏有一個例子:

clean:
rm *.o temp

因為rm 命令不創建名為‘clean’的文件,所以不應有名為‘clean’的檔存在。因此不論何時您 發佈`make clean'指令,rm命令就會執行。 假想目標能夠終止任何在目錄下創建名為‘clean’的文件工作。但如在目錄下存在檔 clean,因為該目標clean 沒有依賴,所以檔clean 始終會認為已經該更新,因此它的命令將 永不會執行。為了避免這種情況,您應該使用象如下特別的.PHONY 目標格式將該目標具體 的聲明為一個假想目標:

.PHONY : clean

一旦這樣聲明,‘make clean’命令無論目錄下是否存在名為‘clean’的檔,該目標的命令都會執 行。

results matching ""

    No results matching ""