背景问题
makefile对 .c 或 .cpp 文件的依赖推导是非常棒的,意味着编辑了源文件之后,重新执行make,只会编译修改的部分,其他部分可以复用上次的 .o 文件。
但是这个好处仅仅局限于源文件,头文件不是原生支持的,需要额外的操作。
解决方案
CFLAGS += -MMD -MP DEPS:= $(ALL_SOURCES:.cpp=.d) -include $(DEPS) clean: rm -rf $(DEPS)
参考
https://www.gnu.org/software/make/manual/html_node/Automatic-Prerequisites.html
https://segmentfault.com/a/1190000002457041