对于小C/C++项目我以前写我的干净的目标如下:如何在Makefile中正确清理?
clean:
$(RM) *.o *~
对于稍大一点的项目,当来源子目录布控,说src1
和src2
,我会写
clean:
$(RM) src1/*.o src1/*~ src2/*.o src2/*~
有了更子目录,它很快变得凌乱......所以,我意识到我可以使用find
命令是这样的:
clean:
find . -name "*.o" -exec $(RM) {} \;
find . -name "*~" -exec $(RM) {} \;
但是我发现人们常常结合使用find
与xargs
而不是使用-exec
,我不知道为什么,因为它似乎很好地工作......
你用什么,为什么?
我知道对于大项目或者为了更好的兼容性,我应该使用cmake或autotools,但我喜欢小项目的Makefile的简单性。
GNU和BSD'find'支持对'-exec'的扩展,使得它们尽可能多地为命令应用参数:'find ... -exec ... +' – 2011-02-24 05:35:43
不错!是否有充分的理由使用'cd ...' - >'make'而不是'make -C ...'? – Simon 2011-02-24 14:00:32