具有空配方和空先决条件和模式规则的规则
Rule with empty recipe and empty prequisite and pattern rule
这是生成文件的片段:
main.o :
%.o: main.c strlen.h main.h common.h
@echo $^
我的问题是,既然 main.o 有一个空的先决条件和配方,那么为什么模式规则列出了 main.o 的依赖项?输出显示如下:
main.o : main.c strlen.h main.h common.h
请解释任何 body 帮助是感激!!!!!!!
没有配方的规则只是将任何提供的先决条件添加到给定目标。换句话说,对于一个给定的目标,只能有一个带有配方的规则,但是对于同一个目标,可以有任意多条没有配方的规则。
这个:
foo.o: foo.h
foo.o: bar.h
foo.o:
foo.o: biz.h
foo.o: foo.c
$(CC) -c -o $@ $<
从 make 的角度来看,与此相同:
foo.o: foo.c foo.h bar.h biz.h
$(CC) -c -o $@ $<
这是生成文件的片段:
main.o :
%.o: main.c strlen.h main.h common.h
@echo $^
我的问题是,既然 main.o 有一个空的先决条件和配方,那么为什么模式规则列出了 main.o 的依赖项?输出显示如下:
main.o : main.c strlen.h main.h common.h
请解释任何 body 帮助是感激!!!!!!!
没有配方的规则只是将任何提供的先决条件添加到给定目标。换句话说,对于一个给定的目标,只能有一个带有配方的规则,但是对于同一个目标,可以有任意多条没有配方的规则。
这个:
foo.o: foo.h
foo.o: bar.h
foo.o:
foo.o: biz.h
foo.o: foo.c
$(CC) -c -o $@ $<
从 make 的角度来看,与此相同:
foo.o: foo.c foo.h bar.h biz.h
$(CC) -c -o $@ $<