16.make的隐士规则(下)

目录

 

1.深入理解隐士规则

2.隐士规则的副作用

3.隐士规则链

4.问题

5.查看隐士规则

6.隐士规则的禁用

7.后缀规则简介

8.双后缀规则

9.单后缀规则

10.关于后缀规则的注意事项

11.小结


1.深入理解隐士规则

  • 当make发现目标的依赖不存在时

               尝试通过依赖名逐一查找隐士规则

               并且通过依赖名推导可能需要的源文件

2.隐士规则的副作用

  • 编译行为难以控制

           大量使用隐士规则可能产生意想不到的编译行为

  • 编译效率低下

           make从隐士规则和自定义规则中选择最终使用的规则

3.隐士规则链

当依赖的目标不存在时,make会极力组合各种隐士规则对目标进行创建,进而产生意料之外的编译行为!

例:

需要名为N.o的目标:

4.问题

make提供了多少隐士规则?如何查看隐士规则?

5.查看隐士规则

  • 查看所有:make –p
  • 查看具体规则:make –p |grep “XXX”

6.隐士规则的禁用

  • 局部禁用

              在makefile中自定义规则

              在makefile中定义模式(如:%.o:%.p)

  • 全局禁用

              make  -r

7.后缀规则简介

  • 后缀规则是旧式的模式规则
  • 可以通过后缀描述的方式自定义规则

 

8.双后缀规则

  • 定义一对文件后缀(依赖文件后缀和目标文件后缀)

9.单后缀规则

  • 定义单个文件后缀(源文件后缀)

10.关于后缀规则的注意事项

  • 后缀规则中不允许有依赖
  • 后缀规则必须有命令,否则无意义
  • 后缀规则将逐步被模式规则取代

11.小结

  • 隐士规则可能造成意想不到的编译行为
  • 在实际工程项目中尽量不使用隐士规则
  • 后缀规则时一种旧式的模式规则
  • 后缀规则正逐步取代被模式规则取代

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值