【问题标题】:how to get doxygen to produce call & caller graphs for c functions如何让 doxygen 为 c 函数生成调用和调用者图
【发布时间】:2012-02-11 20:30:39
【问题描述】:

我花了一些时间查看文档并从头到尾检查我的 doxy 配置文件。我在我的配置文件中删除了 doxygen,它为结构和 cpp 类生成了文档和索引,但我没有在我的源代码树中看到大量 c 函数的调用或调用者图。

谁能告诉我如何配置 doxygen 来生成这些调用树和调用者树?我确实安装了 graphviz。

【问题讨论】:

  • 能否请您添加 doxygen 的输出

标签: c doxygen


【解决方案1】:

您必须将HAVE_DOTCALL_GRAPHCALLER_GRAPH 设置为YES。 还要确保dot 的路径在您的PATH 变量中。

如果这仍然不起作用,您可能需要设置 EXTRACT_ALL 和/或 EXTRACT_STATIC,具体取决于您的功能。

【讨论】:

  • 抱歉,我确实将 HAVE_DOT、CALL_GRAPH 和 CALLER_GRAPH 设置为 YES。通过“PATH 变量”,我假设您的意思是在我的 shell 中,因为我的 doxy cfg 文件中似乎没有一个。是的,点在我的路径中(即“哪个点”有效)。我没有设置 EXTRACT_ALL 或 EXTRACT_STATIC。从 cmets 看来,这些似乎无关紧要,但我现在正在尝试。感谢您的回复。
  • 如果由于某种原因 doxygen 找不到 dot,您可以在 Doxyfile 中通过 DOT_PATH 手动设置路径。
  • 这对我也有用。我很失望 Doxygen 开发人员没有更仔细地考虑默认配置值。
  • EXTRACT_ALLEXTRACT_STATIC 也为我工作。
  • 是的,我的 EXTRACT_* 也不见了。
【解决方案2】:

doxywizard 也很有用。它为您提供了 GUI 中的所有选项。选择任何选项会显示有关该选项的快速帮助。

您可能还对COLLABORATION_GRAPHGRAPHICAL_HIERARCHY 感兴趣。

很方便。

【讨论】:

  • 甜蜜!在 doxywizard 的 Expert-> Dot 下找到它们。必须先启用 HAVE_DOT。
【解决方案3】:

通过 GUI 中的“专家”选项卡控件将路径设置为“点”(/usr/local/bin/) 就成功了!

【讨论】:

    【解决方案4】:

    对于 MacOS 用户:

    将 Doxygen 和 Graphviz 安装为:

    brew install doxygen
    brew install graphviz
    

    转到您的项目文件夹,然后从终端设置到此路径运行

    doxygen -g

    将生成一个 doxygen 文件,命名为 Doxyfile。继续在任何编辑器中打开此文件并找到这些参数并将它们的值替换为 YES 在它们的位置:

    HAVE_DOT               = YES
    EXTRACT_ALL            = YES
    EXTRACT_PRIVATE        = YES
    EXTRACT_STATIC         = YES
    CALL_GRAPH             = YES
    CALLER_GRAPH           = YES
    DISABLE_INDEX          = YES 
    GENERATE_TREEVIEW      = YES
    RECURSIVE              = YES
    

    您还可以在此 Doxyfile 中设置项目的名称。保存文件,然后在终端中运行此命令:

    doxygen Doxyfile
    

    这将生成另外两个文件夹,分别命名为 htmllatex。转到html 文件夹并打开annotated.html 以查看项目的所有详细信息。您还将查看嵌入在 html 中的相关调用图的 png 图像(例如,与某些函数/类)。

    【讨论】:

      【解决方案5】:

      我的 C 全局函数也遇到了同样的问题。启用 CLANG_ASSISTED_PARSING 确实有助于显示某些函数的调用图,但不是全部。

      【讨论】:

        猜你喜欢
        • 2012-12-15
        • 1970-01-01
        • 1970-01-01
        • 2014-07-26
        • 2016-10-09
        • 1970-01-01
        • 2018-05-26
        • 1970-01-01
        • 2013-12-14
        相关资源
        最近更新 更多