我一直在寻找一些描述如何使用doxygen生成简单类图的材料,但却找不到。有人可以帮忙吗?
我需要从一组C ++文件中创建如下所示的图表。
如果有更好的工具来实现这一目标,请告诉我。
Doxygen创建了继承图,但我认为它不会创建一个完整的类层次结构。它允许您使用GraphViz工具。如果您使用Doxygen GUI前端工具,您将在Step2: -> Wizard tab -> Diagrams
中找到相关选项。 DOT关系选项位于“专家”选项卡下。
引自this post(由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
嗯,这似乎是一个古老的问题,但是因为我过去几天一直在搞乱Doxygen配置,而我的头仍然充满了当前的信息让我们有一个刺 -
我认为以前的答案几乎有它:
缺少的选项是在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
这些设置将生成“继承”(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文档 - 上次我看到你可以在http://www.doxygen.nl/manual/config.html。
我想你需要编辑doxys文件并将GENERATE_UML(类似的东西)设置为true。你需要安装dot / graphviz。
Enterprise Architect将根据导入的源代码构建UML图。