Makefile中.PHONY属性是否对目标别名(如clean的别名c)生效?
Makefile中.PHONY属性对别名是否生效?
在你提供的Makefile里,.PHONY属性仅对clean生效,不会自动作用于别名c。
具体说明:
- 执行
make clean时,由于clean被标记为.PHONY目标,make会直接跳过文件存在性检查,不管当前目录有没有名为clean的文件,都会执行对应的rm -rf *.o命令。 - 执行
make c时,c只是和clean共享命令的普通目标,没有.PHONY属性。如果当前目录存在一个名为c的文件,且该文件没有过期(无依赖或依赖未更新),make会判定目标已完成,不会执行清理命令。
如果想让c也拥有.PHONY特性,需要把它加入.PHONY的声明列表:
.PHONY: clean c clean c: rm -rf *.o
内容的提问来源于stack exchange,提问作者zapta
相关产品推荐
相关产品推荐

