【发布时间】:2014-03-23 20:11:57
【问题描述】:
我有一个 Makefile,它定义了一个用于清理 .o 文件和可执行文件的 .PHONY 清理目标,该目标如下所示:
...
.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标志的描述,这是解决方案。
【问题讨论】: