Makefile中.PHONY的作用是什么?

娱乐

.PHONYMakefile是什么意思?我已经经历过,但是它太复杂了。

有人可以简单地向我解释吗?

伊丽·班德斯基

默认情况下,Makefile目标是“文件目标”-用于从其他文件构建文件。Make假设其目标是文件,这使得编写Makefile相对容易:

foo: bar
  create_one_from_the_other foo bar

但是,有时您希望Makefile运行不代表文件系统中物理文件的命令。常见的目标“干净”和“全部”就是很好的例子。可能不是这种情况,但是您可能clean在主目录中有一个命名的文件在这种情况下,Make会感到困惑,因为默认情况下clean目标将与此文件关联,而Make仅在文件依赖关系似乎不是最新时才运行它。

这些特殊的目标称为phony,您可以明确地告诉Make与文件无关,例如:

.PHONY: clean
clean:
  rm -rf *.o

make clean即使您有一个名为的文件,Now也将按预期运行clean

就Make而言,一个虚假目标只是一个总是过时的目标,因此,只要您询问make <phony_target>,它就可以独立于文件系统的状态运行。一些常见的make是经常假目标是:allinstallcleandistcleanTAGSinfocheck

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章