【问题标题】:sphinx + breathe + doxygen: .. doxygendefine:: only works for header filessphinx + Breath + doxygen: .. doxygendefine:: 仅适用于头文件
【发布时间】:2020-11-23 20:25:07
【问题描述】:

我有一个 C 项目,我正在用 sphinx + Breath + doxygen 记录它。

我想记录一个定义使用

.. doxygendefine:: MY_DEFINE

只要在 .h 文件中定义了 MY_DEFINE,它就可以正常工作。当它被移动到一个 .c 文件时,sphinx 会告诉我

doxygendefine: Cannot find define “MY_DEFINE” in doxygen xml output for project ...

查看 doxygen 生成的 XML 文件显示,定义的文档位于 XML 内部。然后我尝试使用

.. doxygenfile:: file.c

生成文件的整个文档。在此文档输出中,存在定义 MY_DEFINE。

我认为问题不在于我的 doxygen 设置。是吗?

是否存在导致这种行为的呼吸配置?

我该如何解决这个问题?这让我发疯了,从源文件中记录东西是行不通的。

顺便说一句:记录函数也只有在头文件中定义时才有效。也找不到 C 文件中的静态函数(尽管存在于 doxygen 的 XML 输出中)

【问题讨论】:

    标签: python-sphinx doxygen


    【解决方案1】:

    我再次阅读文档并意识到,呼吸不会搜索“实施”文件。

    这种行为是由控制的

    breathe_implementation_filename_extensions = ['.c', '.cc', '.cpp']
    

    配置变量。如果我从该列表中排除 C 文件,则会找到定义。但是,如果您在包含原型和实现的文档中同时包含头文件和 C 文件,那么您不喜欢呼吸。

    我想呼吸+狮身人面像的组合对我来说没用,我会暂时坚持使用 doxygen。

    【讨论】:

      猜你喜欢
      • 2014-09-06
      • 1970-01-01
      • 2018-10-16
      • 2020-12-08
      • 2021-05-10
      • 1970-01-01
      • 2018-09-08
      • 2021-04-18
      • 2016-04-20
      相关资源
      最近更新 更多