我正在使用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的语法是否正确(用空格分隔,没有=)?
我该如何调试?
答案 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。
如果所有这些都没有帮助,请发布一个重现问题的最小示例。