我是一个非常新的文件,我正在尝试为我的程序绘制依赖图,并可以使用一些帮助来确定这些依赖项的细节。我引用了this种类的图表,但是我的程序包含的“更深层”的依赖层比该示例更糟,我不确定如何在make文件中处理它们。我喜欢this之类的东西。
我的程序结构如下:
其中箭头表示箭头处的头文件包含在箭头尾部的头文件中。如果重要的话,没有派生类。
感谢您的帮助!
答案 0 :(得分:0)
通过检查,你的makefile应该是这样的:
main: main.o ChiSquared.o StatTests.o ChiSquaredTest.o KS.o ChiSquared.o
$(CXX) $(CXXFLAGS) -o main $^
ChiSquared.o: ChiSquared.cpp ChiSquared.h GaussQuad.h
ChiSquaredTest.o: ChiSquaredTest.cpp ChiSquaredTest.h ChiSquared.h GaussQuad.h
KS.o: KS.cpp KS.h ChiSquared.h GaussQuad.h
StatTests.o: StatTests.cpp StatTests.h ChiSquaredTest.h KS.h ChiSquared.h GaussQuad.h
Main.o: Main.cpp StatTests.h ChiSquaredTest.h KS.h ChiSquared.h GaussQuad.h
(注意使用自动变量$^
而不是显式的目标文件列表。)
要注意两件事:
1)我敢打赌,你实际上并不需要#include
彼此之间的所有头文件;在高级别过多使用#include
会导致不必要的依赖,从而导致不必要的重建。
2)不需要手工在makefile中维护这些先决条件列表; Make可以为你做。但这是一种先进的技术,所以让我们先让你的简单makefile工作。