0%

Makefile中伪目标与PHONY

Makefile文件由一系列规则rules构成,规则是有格式要求的,其中最主要的就是目标文件target,其次就是前置条件prerequisites和命令commands(二者至少存在一个)。当目标文件target不是一个文件时就称此target为伪目标。

一、概念

      Makefile文件由一系列规则rules构成,规则是有格式要求的,其中最主要的就是目标文件target,其次就是前置条件prerequisites和命令commands(二者至少存在一个)。当目标文件target不是一个文件时就称此target为伪目标。

      .PHONY是一个特殊的目标(special target),也可称为伪目标,它用来指定一个假想的工作目标,其后面并不是一个实际文件,而是一个必须要执行的命令名。即存在.PHONY时,其后面的命令一定会执行,可以有效防止在Makefile文件中定义的可执行命令的目标规则和工作目录下的实际文件出现名称冲突,并提高Makefile的执行性能。

二、使用

  1. 不带.PHONY
    • 不存在同名文件clean,执行make clean会正常删除result.txt
    • 存在同名文件clean,执行make clean会报错
1
2
clean:
rm result.txt
  1. .PHONY
1
2
3
4
clean:
rm result.txt

.PHONY:clean

三、参考

  1. 参考一