對於小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