【发布时间】: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