makefile 中的include规则

参考了下面两篇文章,第二篇讲的更好,第一篇基本可以略过不看

https://www.jianshu.com/p/a512424793dc

https://www.cnblogs.com/cuckoos/articles/5049984.html

本人总结的include 指令的规则如下:

  • 当目标文件不存在时
    以文件名为查找规则,找到并执行
    如果没找到,则报错
    如果找到了,但没创建目标文件,然后就没有然后了

  • 当目标文件不存在时
    以文件名为查找规则,找到并执行
    如果查找到的规则中创建了目标文件
    将创建成功的目标文件包含进当前makefile,并且再次以文件名为查找规则,这次查找的范围包含了目标文件里的内容,只要目标文件有更新,这个动作就会进行,直到目标文件不再更新为止,看个例子

    运行如下:

    所以,如果代码写得有问题,会导致无限循环,比如下面这段代码

  • 当目标文件存在
    将目标文件包含进当前 makefile(注意:是先把文件include,然后再查找是否有对应规则)
    以目标文件名查找是否有相应规则,查找的范围包含目标文件里的内容,只要目标文件有更新,这个动作就会进行,直到目标文件不再更新为止,看个例子:

    运行如下:


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值