是否可以编写模式规则,如:
%.o: %.c %.h
<some action>
所以它不接受任何数量的标题,因为我有:
main.o: main.c $(HEADERS)
所以它不适合标准的隐式规则,因为main.c依赖于许多.h文件,因此可以制作一个隐式规则,接受这样的输入,或者我应该写
$(CC) $(CFLAGS) $(DEFINE_OPT) $(INCLUDE) -c $<
明确地
答案 0 :(得分:2)
你可以写:
%.o: %.c $(HEADERS)
但是,通常,您可能不希望所有源文件都依赖于所有头文件。您应该考虑自动生成先决条件列表; Make手册对此进行了一些讨论:http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites。
答案 1 :(得分:0)
在GNUMake中你可以写
main.o: $(HEADERS)
并且内置隐式规则将起作用。如果要自动处理依赖关系,Advanced Auto-Dependency Generation优于GNUMake手册中的依赖关系。