美文网首页Makefile
Makefile语句执行流程

Makefile语句执行流程

作者: stringlife | 来源:发表于2018-08-10 13:48 被阅读0次

    你竟然是这样的Makefile( Makefile语句的执行流程)

    Makefile有一个反人类的设计,即它的执行流程,估计很多人没有注意这个细节,在接下来的实验中,你可能会大吃一惊
    下面是测试代码

    all:first
    
    first:secend
        @echo first step
    secend:third
        @echo secend step 
    third:
        @echo third step 
    

    make 之后的输出结果是什么相信很多人会认为应该是
    下面结果,请注意下面是错误的结果

    first step
    secend step
    third step
    

    下面的结果才是正确的结果

    string@asus:~/Projects/makefile$ make
    third step
    secend step
    first step
    

    解释以下为什么会是这个结果

    1. 当执行make的时候会去寻找all目标,发现依赖first目标
    2. 找到first目标后又发现依赖secend目标
    3. 接下来会去寻找secend目标,而不是先执行@echo first step语句,因为这条语句是依赖 secend的
    4. 同样适用secend目标会先寻找thrid目标
    5. 完成third目标后会回来执行secend的语句
    6. 完成secend目标后会回来执行first的语句

    这里有点难理解,请仔细思考

    相关文章

      网友评论

        本文标题:Makefile语句执行流程

        本文链接:https://www.haomeiwen.com/subject/exvkbftx.html