考虑以下makefile:
default: foo.o
clean:
rm -f fmake test_second
%.o: %.c
echo This is customized implicit rule
%.o: %.c
echo This is overriden implicit rule
make
命令的输出是
echo This is overriden implicit rule
This is overriden implicit rule
这没关系。但是,如果是makefile:
default: foo.o
clean:
rm -f fmake test_second
%.o: %.c
echo This is customized implicit rule
%.o: %.z
echo This is overriden implicit rule
然后make
命令的输出是
echo This is customized implicit rule
This is customized implicit rule
我预计它与第一个例子中的相同。 它为什么不同?我在makefile的目录中有foo.c和foo.z文件。
答案 0 :(得分:1)
您可以从所有不同类型的源文件构建目标文件:来自C文件,C ++文件,FORTRAN文件等。在make中,规则仅在目标和先决条件模式匹配时才会覆盖。否则,它只是定义了一种使用不同先决条件构建目标的新方法。