【问题标题】:Generate collaboration diagrams for structures with simple type members为具有简单类型成员的结构生成协作图
【发布时间】:2012-04-07 01:12:17
【问题描述】:

我有一个用 doxygen 记录的 C 项目。我还使用 graphviz 为我的结构生成协作图。问题在于,对于结构,其成员是简单类型(int、float 等)或其成员在项目外部定义(并通过包含文件包含)不会生成协作图。

如何强制 doxygen 为这些结构生成图表?

例如,假设我有以下结构:

/** This is my simple struct. */
typedef struct 
{
    /** A member */
    int a_member;

    /** Another member */
    int another_member;
} my_simple_struct_t;

如果您有这样的结构,Doxygen 将不会生成协作图(但它会为该结构提供文档条目)。如何强制它创建一个并显示它是两个整数的结构?

【问题讨论】:

  • 我不确定我是否完全遵循,但您尝试生成的协作图的结构是否已记录在案?如果不是,则必须将EXTRACT_ALL 配置文件选项设置为YES
  • 结构由 Doxygen 记录。问题是 Doxygen 没有为它生成协作图。我的项目中还有其他更复杂的结构(即,其成员也是文档化结构的结构)确实可以获得协作图。
  • 据我所知,doxygen 只为每个 class 生成 collaboration graphs,而不是 structs。只有当结构是一个或多个类的成员时,结构才会出现在图表中(参见 this 教程的图 1。为什么不尝试在结构文档中添加 \callgraph\callergraph 命令。
  • 我认为 Doxygen 对待结构的方式与处理类的方式大致相同。无论如何,我得到了一个很好的协作图,用于包含其他结构的所有结构,但不适用于包含简单类型的结构。
  • 我认为 \callgraph 和 \callergraph 命令关注的是函数或方法,而不是结构或类。

标签: doxygen


【解决方案1】:

通过以下设置,doxygen 将为上述结构生成一个协作图:

HAVE_DOT             = YES
COLLABORATION_GRAPH  = YES
HIDE_UNDOC_RELATIONS = NO

【讨论】:

  • @Kostas - 如果您接受答案,请记得勾选。这会给帮助你的人加分。
猜你喜欢
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
  • 2012-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
相关资源
最近更新 更多