我们可以注意到,这个Makefile中并没有写下如何生成 和 bar.o 这两目标的规则和命令。因为make的“隐含规则”功能会自动为我们自动去推导这两个目标的依赖目标和生成命令。

    因为,这已经是“约定”好了的事了,make和我们约定好了用C编译器 cc 生成 .o 文件的规则,这就是隐含规则。

    还有,在make的“隐含规则库”中,每一条隐含规则都在库中有其顺序,越靠前的则是越被经常使用的,所以,这会导致我们有些时候即使我们显示地指定了目标依赖,make也不会管。如下面这条规则(没有命令):