Doxygen不读取代码用宏保护

时间:2013-06-18 15:53:02

标签: doxygen

我正在使用doxygen为我们的C ++ API生成html帮助。

有些部分在代码中启用/禁用,例如

#ifdef EXPERIMENTAL_FEATURE1
class Experimental1
{
   ...
}
#endif

#ifdef EXPERIMENTAL_FEATURE2
class Experimental2
{
   ...
}
#endif

我按照以下方式设置了doxygen PREDEFINED:

PREDEFINED = EXPERIMENTAL_FEATURE1 EXPERIMENTAL_FEATURE2

然而,这并不会导致doxygen提取doc。对于这些课程。日志显示doxygen读取文件。

PREDEFINED的语法是否正确(用空格分隔,没有=)?

我该如何调试?

1 个答案:

答案 0 :(得分:4)

查看doxygen手册:

http://www.doxygen.nl/manual/preprocessing.html

典型的语法是:

PREDEFINED = "name1=value1" \
  "name2=value2" \
  "name3=value3"

更详细地说,手册说:

  

标记的参数是一个宏的列表   形式:名称或名称=定义(无空格)。如果定义和" ="被省略," = 1"假设。   要防止宏定义通过#undef未定义或递归扩展,请使用:=运算符   而不是=运算符。

如果你没有价值,你可以简单地写" name" - 所以你的榜样应该有效。

确保doxyfile中的以下设置正确无误:

HIDE_UNDOC_CLASSES=NO
EXTRACT_ALL=YES
EXTRACT_LOCAL_CLASSES=YES

否则不会将课程放入文档中。

还要确保ENABLE_PREPROCESSING设置为YES。

如果所有这些都没有帮助,请发布一个重现问题的最小示例。