在Makefile中,可以使用模式规则来定义一组依赖项,并使用依赖于模式的变量来指定依赖项。以下是一个示例:
# 定义一个模式规则
%.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
# 定义一个依赖于模式的变量
OBJS = $(patsubst %.c, %.o, $(wildcard *.c))
# 使用依赖于模式的变量作为依赖项
my_program: $(OBJS)
$(CC) $(LDFLAGS) $^ -o $@
在这个示例中,我们定义了一个模式规则,用于将所有的.c
文件编译成.o
文件。然后,我们使用patsubst
函数和wildcard
函数来生成一个依赖于模式的变量OBJS
,该变量包含了所有的.o
文件。最后,我们将$(OBJS)
作为my_program
的依赖项,这样当任何一个.c
文件发生变化时,Makefile就会自动重新编译它,并链接生成my_program
可执行文件。
需要注意的是,在使用依赖于模式的变量时,需要使用$^
符号来引用所有的依赖项,而不是$@
符号,因为$@
符号只表示当前规则的目标文件,而不是所有的依赖项。
领取专属 10元无门槛券
手把手带您无忧上云