微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 如何避免“没有这样的文件或目录”`make clean` Makefile目标的错误

我有一个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标志的描述,这是解决方案.

解决方法

使用rm -f(甚至更好的$(RM),由内置的make规则提供,可以使用make -p)而不是清洁规则中的rm.

原文地址:https://www.jb51.cc/linux/395517.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐