我一直在寻找一些材料,描述如何生成简单的类图与氧气,但无法找到一个。有人能帮忙吗?
我需要从一组 C + + 文件中创建如下所示的图表。
如果有更好的工具更容易实现这一点,请让我知道。
我认为您需要编辑 doxys 文件并将 GENERATE _ UML (类似的东西)设置为 true。还需要安装 dot/Graphviz。
Dox 创建继承关系图,但我不认为它会创建一个完整的类层次结构。它确实允许您使用 GraphViz 工具。如果您使用 DoxyGUI 前端工具,您将在 Step2: -> Wizard tab -> Diagrams中找到相关的选项。DOT 关系选项在“专家”选项卡下。
Step2: -> Wizard tab -> Diagrams
Quote from 这篇文章 (it's written by the author of doxygen himself) :
run doxygen -g and change the following options of the generated Doxyfile: EXTRACT_ALL = YES HAVE_DOT = YES UML_LOOK = YES run doxygen again
企业架构师将从导入的源代码构建一个 UML 图。
Hmm, this seems to be a bit of an old question, but since I've been messing about with Doxygen configuration last few days, while my head's still full of current info let's have a stab at it -
我认为以前的答案几乎已经说明了一切:
缺少的选项是在 Doxyfile 中添加 COLLABORATION_GRAPH = YES。我假设您可以在 doxyWizard GUI 中的某个地方做相同的事情(我不使用 doxyWizard)。
COLLABORATION_GRAPH = YES
因此,作为一个更完整的例子,与 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)图。
CLASS_GRAPH=YES
COLLABORATION_GRAPH=YES
根据您的目标“部署”的氧输出,设置 DOT_IMAGE_FORMAT = svg也可能是有用的。使用 svg 输出,图表是“可伸缩的”,而不是位图格式的固定分辨率,例如。砰。显然,如果在 IE 以外的浏览器中查看输出,还有 INTERACTIVE_SVG = YES,它将允许“交互式缩放和平移”生成的 svg 图。我曾经尝试过这样做,svg 的输出在视觉上非常吸引人,但是当时,浏览器对 svg 的支持仍然有点不一致,所以希望最近这种情况有所改善。
DOT_IMAGE_FORMAT = svg
INTERACTIVE_SVG = YES
正如其他评论所提到的,其中一些设置(特别是 DOT_GRAPH_MAX_NODES)确实有潜在的性能影响,因此 YMMV。
DOT_GRAPH_MAX_NODES
我讨厌“ RTFM”风格的回答,所以很抱歉这样说,但是在这种情况下,Doxydocs 确实是你的朋友,所以查看上面提到的设置中的 Doxydocs-上次我查看的时候,你可以在 http://www.doxygen.nl/manual/config.html找到详细信息。
The 2 highest upvoted answers are correct. As of today, 我唯一需要改变的(从默认设置)是启用使用点生成 instead of the built-in generator.
一些重要的注意事项:
html/inherits.html
T
foo
foo<U>
bar
U
foo<>
bar<U>
variant
variant<Ts...>
<...>