雙冒號規則

雙冒號規則是在目標名後使用::代替:的規則。當同一個目標在一條以上的規則
中出現時,雙冒號規則和平常的規則處理有所差異。

當一目標在多條規則中出現時,所有的規則必須是同一類型:要麼都是雙冒號規則,要
麼都是普通規則。如果他們都是雙冒號規則,則它們之間都是相互獨立的。如果目標比一個
雙冒號規則的依賴‘舊’,則該雙冒號規則的命令將執行。這可導致具有同一目標雙冒號規則
全部或部分執行。

雙冒號規則實際就是將具有相同目標的多條規則相互分離,每一條雙冒號規則都獨立的
運行,就像這些規則的目標不同一樣。

對於一個目標的雙冒號規則按照它們在makefile檔中出現的順序執行。然而雙冒號規則
真正有意義的場合是雙冒號規則和執行順序無關的場合。

雙冒號規則有點模糊難以理解,它僅僅提供了一種在特定情況下根據引起更新的依賴檔
不同,而採用不同方式更新目標的機制。實際應用雙冒號規則的情況非常罕見。

Newprog :: hello.c
    $(CC) $< -o $@

Newprog :: world.c
    $(CC) $< -o $@

results matching ""

    No results matching ""