在動態目標規則中,patsubst函數可以用來替換目標中的通配符,并返回替換后的結果。例如,假設有以下動態目標規則:
%.o: %.c
gcc -c $< -o $@
%.exe: %.o
gcc $< -o $@
在這個規則中,patsubst函數可以用來替換%.o和%.exe中的通配符,例如將%.o替換為%.c,將%.exe替換為%.o。具體用法如下:
OBJ_FILES = $(patsubst %.c, %.o, $(wildcard *.c))
EXE_FILES = $(patsubst %.o, %.exe, $(OBJ_FILES))
這里使用patsubst函數將所有.c文件替換為對應的.o文件,以及將所有.o文件替換為對應的.exe文件。這樣就可以生成對應的目標文件,并且確保目標文件與源文件的對應關系正確。