使具有多个依赖项的文件依赖关系图表

时间:2014-02-07 22:32:31

标签: c++ makefile

我是一个非常新的文件,我正在尝试为我的程序绘制依赖图,并可以使用一些帮助来确定这些依赖项的细节。我引用了this种类的图表,但是我的程序包含的“更深层”的依赖层比该示例更糟,我不确定如何在make文件中处理它们。我喜欢this之类的东西。

我的程序结构如下: Program Dependency

其中箭头表示箭头处的头文件包含在箭头尾部的头文件中。如果重要的话,没有派生类。

感谢您的帮助!

1 个答案:

答案 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工作。