我一直在寻找描述如何使用doxygen生成简单类图的材料,但找不到。有人可以帮忙吗?
我需要从一组C ++文件创建如下图所示。
如果有更好的工具可以更轻松地实现此目的,请告诉我。
Answers:
Doxygen创建继承图,但我认为它不会创建整个类层次结构。它确实允许您使用GraphViz工具。如果您使用Doxygen GUI前端工具,则会在中找到相关选项Step2: -> Wizard tab -> Diagrams
。DOT关系选项在“专家”选项卡下。
嗯,这似乎是个老问题了,但是由于最近几天我一直在讨论Doxygen配置,而我的头上仍然充满着当前信息,让我们来刺一下-
我认为先前的答案几乎是这样的:
缺少的选项是COLLABORATION_GRAPH = YES
在Doxyfile中添加。我假设您可以在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
图()。
根据“输出”氧气的目标,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。
RECURSIVE
为YES
我认为您将需要编辑doxys文件并将GENERATE_UML(类似)设置为true。并且您需要安装dot / graphviz。
2个最高支持的答案是正确的。到今天为止,我唯一需要更改的(从默认设置开始)是启用使用点而不是内置生成器的生成。
一些重要的注意事项:
html/inherits.html
类=>类层次结构=>“转到文本类层次结构”中找到(或从网站导航中找到)。T
。
foo
继承自T
并且T
模板类型参数具有默认值,则将采用该默认值。如果有一个bar
继承自foo<U>
where 的类型U
不同于默认类型,bar
则将有一个foo<U>
parent。foo<>
并且bar<U>
没有共同的父母。variant
将显示任何实例以继承variant<Ts...>
。<...>
的名称中将有一个字符串,表示没有默认值的type和non-type参数。