2013-03-08 69 views
6

这听起来像是科幻功能的要求,但我不知道是否使用Doxygen有任何以下两个特点:确实的Doxygen有支持的分支或C/C++预处理器

  1. 生成呼叫/主叫预处理器运行输入文件之后的图形。 实施例:

    #define MULTITHREADING 1 
    

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

  2. 描述确定性通话与图箭头...例如虚线,如果函数并不总是叫(又名它是在一个分支或者你有可能return函数被调用之前。

回答

5

的第一个项目,你会希望能够在您的Doxyfile

ENABLE_PREPROCESSING选项对于第二个,我真的不知道,但如果它确实会感到非常吃惊。我认为这将需要一个完整的C/C++编译器来确定这些事情。

+0

你确定ENABLE_PREPROCESSING的工作原理与我预期的一样。从我所看到的调用图即使对于从未生成的代码也会生成调用图 – NoSenseEtAl 2013-03-08 12:09:27

+0

说实话,我不确定Doxygen解析器是否能够胜任此任务。也许你在[邮件列表](https://lists.sourceforge.net/lists/listinfo/doxygen-users)上有更多的运气问。 – 2013-03-08 12:15:12

+0

tnx ...有一天他们会切换到clang进行解析。 :D – NoSenseEtAl 2013-03-08 12:27:34

5
  1. Doxygen的Preprocessing:被用作输入到doxygen的

    源文件可以通过解析 的doxygen的内置C-预处理。

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

  2. COLLABORATION_GRAPH

    如果COLLABORATION_GRAPH和HAVE_DOT标签被设置为YES,那么 的doxygen将生成用于示出 直接和间接的执行依赖性的每个记录类的曲线图(继承, 遏制,和类引用变量)与其他 记录的类相关联。

+0

对我来说,PP没有工作,即时通讯不是在谈论宏的exp ...我甚至检查了g ++ PP输出到文件并检查了它..它可能是我在做错误的事情......如果PPL能确认/否认这种或那种方式,那会很好...... – NoSenseEtAl 2013-03-19 12:35:21