0%

Makefile中伪目标与PHONY

统计学是通过搜索、整理、分析、描述数据等手段,以达到推断所测对象的本质,甚至预测对象未来的一门综合性科学。统计学用到了大量的数学及其它学科的专业知识,其应用范围几乎覆盖了社会科学和自然科学的各个领域。统计学专业是应用数学专业的一个分支,主要通过利用概率论建立数学模型,收集所观察系统的数据,进行量化分析、总结,做出推断和预测,为相关决策提供依据和参考。应用数学专业培养掌握数学科学的基本理论与基本方法,具备运用数学知识、使用计算机解决实际问题的能力,受到科学研究的初步训练,能在科技、教育和经济部门从事研究、教学工作或在生产经营及管理部门从事实际应用、开发研究和管理工作的高级专门人才。

一、概念

      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. 参考一