makefile 学习之路16 - makefile 的隐式规则(下)
声明: 本文写于 狄泰软件学院 makefile课程 学后总结
深入理解隐式规则
- 当 make 发现目标的依赖不存在时
尝试通过依赖名逐一查找隐式规则
并且通过依赖名推导可能需要的源文件
- 编译效率低下
make从隐式规则和自定义规则中选择最终使用的规则
隐式规则链
当依赖的目标不存在时, make 会极力组合各种隐式规则对目标进行创建,进而产生意料之外的编译行为!
如何查看隐式规则
隐式规则的禁用
- 局部禁用
在 makefile 中自定义会泽
在 makefile 中定义模式 (如: %.o : %.p)
- 全局禁用
make -r
关于后缀规则的注意事项
- 后缀规则中不允许有依赖
- 后缀规则必须要有命令,否则无意义
- 后缀规则将逐步被模式规则取代
小结
隐式规则可能造成意想不到的编译行为
在实际的工程项目中尽量不使用隐式规则
后缀规则是一种旧的模式规则
后缀规则正逐步被模式规则取代