Makefile模式规则

时间:2012-03-16 15:43:21

标签: makefile

是否可以编写模式规则,如:

%.o: %.c %.h
    <some action>

所以它不接受任何数量的标题,因为我有:

main.o: main.c $(HEADERS)

所以它不适合标准的隐式规则,因为main.c依赖于许多.h文件,因此可以制作一个隐式规则,接受这样的输入,或者我应该写

$(CC) $(CFLAGS) $(DEFINE_OPT) $(INCLUDE) -c  $<

明确地

2 个答案:

答案 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手册中的依赖关系。