zoukankan      html  css  js  c++  java
  • Makefile强制目标(没有命令或依赖的规则)

    Makefile中,如果一个规则没有命令或者依赖,并且它的目标不是一个存在的文件名。在执行此规则时,目标总会被认为是最新的。就是说: 这个规则一旦被执行,make就认为它的目标已经被更新过。这样的目标在作为一个规则的依赖时,因为依赖总被认为被更新过,因此作为依赖所在的规则中定义的命令总会被执行。

    示例:

    1 all: FORCE
    2     @echo "****all: FORCE***"
    3 
    4 FORCE:;
    5 
    6 .PHONY: FORCE

    在上述例子中,目标 “FORCE” 符合上边的条件,它属于一个强制目标。“FORCE” 作为目标“all”的依赖,在执行make时,“FORCE” 总被认为被更新过。因此 “all” 所在规则在被执行时其所定义的命令总是会被执行。这样的被其他目标依赖的目标通常我们将其命令为“FORCE”。

    上边的例子中使用 "FORCE" 目标的效果和将 “all” 声明为伪目标的效果相同。强制目标应该谨慎使用。

  • 相关阅读:
    PSP总结报告
    第十三周例行报告
    对团队成员公开感谢
    附加作业 软件工程原则的应用实例分析
    第十二周例行报告
    第十一周例行报告
    第十周例行报告
    第八周例行报告
    第七周例行报告
    第六周例行报告
  • 原文地址:https://www.cnblogs.com/merlindu/p/6957258.html
Copyright © 2011-2022 走看看