在Makefile中,我读到:
-rm -rf(而不是rm -rf)。第一个“ - ”在Makefile的行开头是什么意思?
答案 0 :(得分:55)
这意味着make
本身会忽略来自rm
的任何错误代码。
在makefile
中,如果任何命令失败,则make
进程本身会中断处理。通过在命令前添加-
作为前缀,您可以通知make
无论命令结果如何,它都应该继续处理规则。
例如,makefile规则:
clean:
rm *.o
rm *.a
如果*.a
返回错误(例如,如果没有要删除的rm *.o
文件),将不删除*.o
文件。使用:
clean:
-rm *.o
-rm *.a
将解决该特定问题。
除了:虽然在您的特定情况下可能不需要它(因为-f
标志似乎阻止rm
在文件不存在时返回错误),在makefile
- rm
中明确标记该行可能会在某些情况下返回其他错误仍然是一种好习惯,这会使您的意图明确。