代码改变世界

makefile 中.PHONY的作用

2020-12-19 18:35  宋海宾  阅读(388)  评论(0编辑  收藏  举报

一.实例

拿clean举例,如果make完成后,自己另外定义一个名叫clean的文件,再执行make clean时,将不会执行rm命令。
  为了避免出现这个问题,需要.PHONY: clean

图示:
(1)不添加.PHONY:clean
这里写图片描述
在Makefile所在的目录下touch一个clean文件
运行make–>运行make clean
这里写图片描述
结果:由于目录下clean文件冲突,无法执行make clean
(2)添加.PHONY:clean
这里写图片描述
运行make–>运行make clean
这里写图片描述
结果:make clean正常执行

二.结论

.PHONY是一个伪目标,可以防止在Makefile中定义的只执行命令的目标和工作目录下的实际文件出现名字冲突,另一种是提交执行makefile时的效率。

更多关于.PHONY的知识请看http://www.cnblogs.com/chenyadong/archive/2011/11/19/2255279.html