3

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

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

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

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

我将我的 doxygen PREDEFINED 设置如下:

预定义 = EXPERIMENTAL_FEATURE1 EXPERIMENTAL_FEATURE2

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

PREDEFINED 的语法是否正确(以空格分隔且不带 =)?

我该如何调试呢?

4

1 回答 1

4

看看 doxygen 手册:

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

典型的语法是:

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

更详细的手册说:

标记的参数是以下形式的宏列表:name 或 name=definition(无空格)。如果省略定义和“=”,则假定“=1”。要防止宏定义通过#undef 未定义或递归扩展,请使用:= 运算符而不是= 运算符。

如果你没有价值,你可以简单地写“名字”——所以你的例子应该有效。

确保您的 doxyfile 中的以下设置正确:

HIDE_UNDOC_CLASSES=NO
EXTRACT_ALL=YES
EXTRACT_LOCAL_CLASSES=YES

否则,类不会放入文档中。

还要确保 ENABLE_PREPROCESSING 设置为 YES。

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

于 2013-06-19T19:57:53.390 回答