jam*_*meh 12 linux makefile rm
我有一个Makefile,它定义了.PHONY清理目标,用于清理.o文件和可执行文件,目标如下:
...
.PHONY : clean
clean:
    rm $(addprefix $(vq_DIR),$(vq_OBJS)) \
       $(addprefix $(vq_DIR),vq) \
       $(addprefix $(covq_DIR),$(covq_OBJS)) \
       $(addprefix $(covq_DIR),covq) \
       $(addprefix $(covq_2_DIR),$(covq_2_OBJS)) \
       $(addprefix $(covq_2_DIR),covq_2) \
       $(addprefix $(covq_2_DIR),$(test_OBJS)) \
       $(addprefix $(covq_2_DIR),test)
一切都按预期工作,但是当其中一些文件不存在时,rm会引发错误(没有这样的文件或目录),并且输出显示Makefile目标失败,当它明显做我想要的时候.
是否有一种很好的方法可以基本告诉rm命令"如果它们存在则删除这些文件,如果不存在则不要抱怨"?我查阅了联机帮助页rm,但没有找到这样的标志.
编辑:我实际上没有注意到-f联机帮助页中的标志描述,这是解决方案.
Bas*_*tch 22
使用rm -f(甚至更好$(RM),由内置make规则提供,可以使用make -p),而不是rm在您的clean规则中.