如何使用doxygen从C ++源码创buildUML类图

我一直在寻找一些材料来描述如何用doxygen生成简单的类图,但是找不到一个。 任何人都可以帮忙吗?

我需要从一组C ++文件创build如下所示的图表。 替代文字

如果有更好的工具来实现这一点,请让我知道。

Doxygen创buildinheritance图,但我不认为它会创build一个完整的类层次结构。 它确实允许您使用GraphViz工具。 如果您使用Doxygen GUI前端工具,您将在Step2: -> Wizard tab -> Diagramsfind相关选项。 DOT关系选项在专家选项卡下。

从这篇文章引用(这是由doxygen自己的作者写的):

 run doxygen -g and change the following options of the generated Doxyfile: EXTRACT_ALL = YES HAVE_DOT = YES UML_LOOK = YES run doxygen again 

嗯,这似乎是一个老问题,但由于我一直在搞Doxygenconfiguration过去几天,而我的头仍然充满了当前的信息让我们有一个刺 –

我想以前的答案几乎都有:

缺less的选项是在Doxyfile中添加COLLABORATION_GRAPH = YES 。 我假设你可以在doxywizard GUI的某个地方做同样的事情(我不使用doxywizard)。

因此,作为一个更完整的例子,我倾向于使用的与UML输出相关的典型“Doxyfile”选项是:

 EXTRACT_ALL = YES CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = NO HAVE_DOT = YES CLASS_GRAPH = YES COLLABORATION_GRAPH = YES UML_LOOK = YES UML_LIMIT_NUM_FIELDS = 50 TEMPLATE_RELATIONS = YES DOT_GRAPH_MAX_NODES = 100 MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = YES 

这些设置将生成“inheritance”( CLASS_GRAPH=YES )和“协作”( COLLABORATION_GRAPH=YES )图表。

根据doxygen输出的“部署”的目标,设置DOT_IMAGE_FORMAT = svg也可能是有用的。 使用svg输出,图表是“可缩放的”,而不是像.png这样的位图格式的固定分辨率。 显然,如果在浏览器中查看除IE以外的输出,还有INTERACTIVE_SVG = YES ,这将允许生成的svg图的“交互式缩放和平移”。 我前段时间尝试过,svg的输出在视觉上非常有吸引力,但是当时浏览器对svg的支持还是有点不一致,所以希望这种情况最近可能会有所改善。

正如其他评论所述,其中一些设置(特别是DOT_GRAPH_MAX_NODES )确实会对性能产生影响,所以YMMV。

我倾向于讨厌“RTFM”风格的答案,所以对这句话表示歉意,但在这种情况下,Doxygen文档确实是你的朋友,所以请查看上面提到的设置的Doxygen文档 – 上次看,你可以find细节http://www.stack.nl/~dimitri/doxygen/manual/config.html

我想你将需要编辑doxys文件,并将GENERATE_UML(类似的东西)设置为true。 你需要安装dot / graphviz。

Enterprise Architect将从导入的源代码构build一个UML图。