在Makefile中,常見的規則有以下幾種:
- 顯式規則(Explicit Rule):指定一個或多個目標文件和依賴文件,并給出生成目標文件的命令。例如:
target: dependencies
command
- 隱式規則(Implicit Rule):根據文件名的后綴和一些約定規則,自動推導出生成目標文件的命令。例如,可以使用以下規則來生成目標文件
foo.o
:
%.o: %.c
command
- 偽目標規則(Phony Rule):定義一個不對應任何實際文件的目標,用于執行一些特定的動作。例如:
.PHONY: target
target:
command
- 文件搜索路徑規則(VPATH Rule):指定搜索依賴文件時的搜索路徑。例如:
VPATH = src include
- 模式規則(Pattern Rule):類似于隱式規則,可以根據文件名的模式匹配來生成目標文件。例如:
%.o: %.c
command
- 條件規則(Conditional Rule):根據條件來決定是否執行某個規則。例如:
ifeq ($(condition),true)
target: dependencies
command
endif
- 函數規則(Function Rule):使用Makefile中提供的函數來生成目標文件的命令。例如:
target: $(function arguments)
command
以上是一些常見的Makefile編寫規則,它們可以幫助我們定義和控制程序的編譯和構建過程。