Makefile为什么要有伪目标
Posted 吾乃世间奇才
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Makefile为什么要有伪目标相关的知识,希望对你有一定的参考价值。
clean:
rm *.o temp
规则中“rm”不是创建文件“clean”的命令,而是删除当前目录下的所有.o 文件和 temp
文件。当工作目录下不存在“clean”这个文件时,我们输入“make clean”,“rm *.o
temp”总会被执行。这是我们的初衷。
但是如果在当前工作目录下存在文件“clean”,情况就不一样了,同样我们输入
“make clean”,由于这个规则没有任何依赖文件,所以目标被认为是最新的而不去执
行规则所定义的命令,因此命令“rm”将不会被执行。这并不是我们的初衷。为了解
决这个问题,我们需要将目标“clean”声明为伪目标。将一个目标声明为伪目标的方
法是将它作为特殊目标.PHONY”的依赖。如下:
.PHONY : clean
简单来说,就是为了规范,并且可以避免错误
以上是关于Makefile为什么要有伪目标的主要内容,如果未能解决你的问题,请参考以下文章