makefile 中的include规则

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

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

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

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

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

  • 当目标文件不存在时
    以文件名为查找规则,找到并执行
    如果查找到的规则中创建了目标文件
    将创建成功的目标文件包含进当前makefile,并且再次以文件名为查找规则,这次查找的范围包含了目标文件里的内容,只要目标文件有更新,这个动作就会进行,直到目标文件不再更新为止,看个例子
    makefile 中的include规则_第1张图片
    运行如下:
    makefile 中的include规则_第2张图片
    所以,如果代码写得有问题,会导致无限循环,比如下面这段代码
    makefile 中的include规则_第3张图片

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


 

你可能感兴趣的:(linux)