【问题标题】:Does Doxygen have support for branching or for C/C++ preprocessorDoxygen 是否支持分支或 C/C++ 预处理器
【发布时间】:2013-03-08 11:12:29
【问题描述】:

这听起来像是一个科幻功能请求,但我想知道 Doxygen 是否具有以下两个功能中的任何一个:

  1. 在预处理器运行输入文件后生成调用/调用者图。 示例:

    #define MULTITHREADING 1
    

    然后根据是否启用MULTITHREADING 启用或禁用代码块。

  2. 用图形箭头描述调用的确定性...例如,如果函数并不总是被调用(也就是它在一个分支中,或者你有可能@函数调用前的987654323@。

【问题讨论】:

    标签: c++ c doxygen


    【解决方案1】:
    1. 氧气Preprocessing:

      用作 doxygen 输入的源文件可以通过以下方式解析 doxygen 的内置 C 预处理器。

      默认情况下,doxygen 只进行部分预处理。这就对了 评估条件编译语句(如#if)并评估 宏定义,但不进行宏扩展。

    2. COLLABORATION_GRAPH:

      如果 COLLABORATION_GRAPH 和 HAVE_DOT 标签设置为 YES,那么 doxygen 将为每个记录的类生成一个图表,显示 直接和间接的实现依赖(继承, 包含和类引用变量)的类与其他 记录类。

    【讨论】:

    • 对我来说 PP 没有用,我不是在谈论宏 exp……我什至检查了 g++ PP 输出到文件并检查了它……可能是我做错了……会是如果人们可以以一种或另一种方式确认/否认这一点,那就太好了......
    【解决方案2】:

    对于第一项,您需要在Doxyfile 中启用ENABLE_PREPROCESSING 选项。

    第二个,老实说,我不知道,但如果知道的话,我会非常惊讶。我认为这需要一个完整的 C/C++ 编译器来确定这些事情。

    【讨论】:

    • 您确定 ENABLE_PREPROCESSING 可以正常工作吗?从我所见,即使对于从未使用当前定义生成的代码,也会生成调用图
    • 说实话,我不确定 Doxygen 解析器是否能胜任这项任务。也许你有更多的运气在mailing list 上提问。
    • tnx... 有一天他们会切换到 clang 进行解析。 :D
    • 我当然希望他们这样做。同时你可以看看cldoc,这是一个处于早期阶段的项目,或者直接使用新的comment AST introspection API来推出你自己的:-P
    猜你喜欢
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 2018-08-15
    • 2012-05-29
    • 2018-08-07
    • 2010-12-09
    相关资源
    最近更新 更多