zoukankan      html  css  js  c++  java
  • make的特殊之处

    1 规则的先后顺序问题

    规则的先后顺序只会影响默认的目标,没有其它的影响。

    2 make对具有相同目标的规则的处理方式

    2.1 如果是单冒号

    只能有一个规则是有命令的,然后对它们进行合并,即依赖合并。

    2.2 如果是双冒号

    分别单独处理,顺序按照makefile中的顺序。这种情况下,只有各个规则的命令是独立才是有意义的。

    3 make对模式规则和非模式规则匹配的先后顺序

    4 通配符扩展的时机

    4.1 不会扩展的情况

    第一,定义变量的时候

    第二,作为函数的参数的时候

    4.2 会自动扩展的情况

    在命令中。

    4.3 通配符扩展函数wildcard

    $(wildcard *.c)

    4.4 问题

    在目标和依赖中的通配符呢,会自动扩展吗?

    5 没有依赖和没有命令的目标作为别人的依赖使用

    当没有依赖和没有命令的目标作为别人的依赖使用时,该“别人”目标总是会被重新构建。

    6 静态模式规则

    静态模式规则是相对于模式规则而言的。

    静态模式规则有两个冒号,它指定了明确的目标,然后通过目标模式去匹配依赖模式,从而找到相应的依赖。它是一种自动确定依赖的方法。

    而模式规则不光自动确定依赖,还自动确定目标。

    7 make的条件判断的特殊之处

    其它语言的条件判断是控制执行流的,但是makefile的条件判断并不是控制执行流的,它是控制makefile对make的可见性的,如果条件不满足,那么make就看不到makefile被条件包裹的部分。

    8 无论rules的recipe怎么写,recipe的每行前面都必须是tab键,而不能是空格,否则make不能识别。

  • 相关阅读:
    Flask发送邮件
    python 可调用对象之类实例
    flask 跨域请求
    flask登录插件 flask-login
    flask 更新数据库
    python事物管理及同步锁
    Django signals 信号作用及用法说明
    python中各个response使用
    Ntp时间服务器
    Iptables-主机防火墙设置
  • 原文地址:https://www.cnblogs.com/hustdc/p/7458098.html
Copyright © 2011-2022 走看看