我正在研究头文件依赖 Makefile。这是代码的一个非常简化的版本:
cdeps/%.mk:: %
mkdir -p $(@D)
./cdeps.sh cdeps $* .
%.cpp.o: %.cpp cdeps/%.cpp.mk
g++ -c $< -o $@ -I.
include $(shell find cdeps -type f 2>/dev/null)
a.cpp 包括 b.cpp;cdeps.sh 将依赖项添加到其他 cdeps/%.mk 以获取包含的文件。
因此,当我“制作 a.cpp.o”时,首先创建 cdeps/a.cpp.mk,然后创建 a.cpp.o(完全符合预期)。然后 cdeps/a.cpp.mk 被删除。为什么?