先看makefile核心规则

1
2
target: prerequisites
command

make解析执行makefile判断过程:

  • 若target不存在,则根据prerequisites,执行commond
  • 若target已存在,则比较target和prerequisites修改时间
    • 若prerequisites不存在,则不执行commond!
    • 若prerequisites比target新,则执行commond(说明在生成target后,对依赖文件进行了修改)
    • 若prerequisites没有target新,则不执行commond

为什么需要伪目标

  • 假设当前目录下已有clean文件,则根据make解析过程,不会执行后续commond

什么是伪目标(.PHONY)

伪目标相对于目标而言,其不会生成实体文件

伪目标的作用

显式告诉make不要跟实体文件进行关联判断,以便执行相应的命令

留言

▲