【问题标题】:Excluding specific headers from dependency graphs从依赖图中排除特定标头
【发布时间】:2013-07-20 23:52:18
【问题描述】:

我不确定这是doxygen 还是dot 的问题,但这里是。

在我的项目中,我有许多文件需要包含公共标头,例如 stdlib.hstdint.h 等。当我要求 doxygen 为我的每个文件生成依赖关系图时,这会导致很多混乱和噪音,因为绘图工具总是重用现有节点并且从不复制它们。

我能否以某种方式告诉doxygen 从生成的图表中排除一组标题,完全忽略它们?在构建文档时,我不想诉诸可怕的预处理器技巧来删除#include。

我找到了几个邮件列表线程,有人问同样的问题,但他们要么没有得到回复,要么没有得到关于使用依赖图的最大深度的建议,这根本行不通,因为标题可以包含在任何深度(这样做最终会咀嚼我自己的本地标头)。

【问题讨论】:

    标签: doxygen dot


    【解决方案1】:

    这有点远,因为我的 doxygen 有点生锈了,但是你试过了吗

    \cond \endcond
    

    在标题部分周围。 (条件包含,但空白 = false)

    例如,标准 C 或 C++ 标头通常会使依赖关系图非常混乱,因此您可能希望将它们从该图中删除(因为它们的使用可以被视为语言的一部分)。 您可以像这样在文件的基础上执行此操作(使用 1.8.7 测试):

    /// \cond
    #include <iostream>
    #include <string>   // whatever...
    /// \endcond
    

    在其他情况下,这会排除标记之间的代码对 doxygen 可见,但我不确定它是否适用于这种情况。

    【讨论】:

    • 成功了!有点笨重,但我不介意在一些 doxygen 标签中包含一些标题。非常感谢:)
    • 太棒了!刚从假期回来,想知道这是否有用。感谢您的反馈 - 和奖金 :)
    • 我错过了什么吗?我试过 //@cond #include //@endcond 但这没有用。从文件中删除一个函数也是如此。我需要修改stdint文件吗?谢谢。
    • @user1050181 我认为你需要 doxygen cmets,所以 ///(三斜杠)或 /** */?此外,该文件需要 doxygen 可读,因此它也需要在 doxygen 注释中的某处有一个 \@file
    • 我刚刚检查过,工作起来就像一个魅力(即使在没有使用@file 命令引用的文件上,就像标准语言头文件一样)。编辑了一个示例,以使其更清晰,以供将来的读者阅读。
    猜你喜欢
    • 2017-02-06
    • 2011-03-03
    • 2019-10-01
    • 2021-12-25
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 2018-12-16
    相关资源
    最近更新 更多