【发布时间】:2017-01-16 23:39:22
【问题描述】:
在使用 doxygen 生成 C++ 继承图时,我注意到图可能不完整。
如果使用tag files 记录了多个项目以允许交叉引用,doxygen 将成功显示存在于其他标记文件中的所有基类,但它不会不显示派生类 如果它们在其他标记文件中。显示的派生类始终只是当前项目中存在的类。
示例项目1代码:
class A {};
class B : public A {};
class C : public A {};
示例项目 2 代码:
#include <proj1.h>
class D : public A {};
class E : public A {};
class F : public E {};
来自项目 1 的 A 的继承图,使用来自项目 2 的标记文件 - D、E 和 F 是哪里?
来自项目 2 的 E 的继承图,使用来自项目 1 的标记文件 - 显示了父类 A。
是否有设置告诉 doxygen 在使用标签文件时跨项目生成完整的继承图?
【问题讨论】:
-
这可能是一个 doxygen 错误。
-
不确定它是否能帮助您跨多个对象,但您是否尝试过 Graphviz?
-
@DPD 是的,如果我理解正确的话,doxygen 正在使用 Graphviz(特别是工具
dot)来生成这些图表。 -
抱歉打错了,应该是“跨多个项目”。
-
不确定这个问题是否有趣,但据我在设置
HAVE_DOT=YES时所见,显示了正确的图表。未设置HAVE_DOT=YES时,D、E和F均缺失。
标签: c++ oop inheritance doxygen