Doxygen 不读取由宏保护的代码

Pau*_*aul 4 doxygen

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

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

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

#ifdef EXPERIMENTAL_FEATURE2
class Experimental2
{
   ...
}
#endif
Run Code Online (Sandbox Code Playgroud)

我将 doxygen PREDEFINED 设置如下:

预定义 = 实验功能 1 实验功能 2

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

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

我该如何调试这个?

小智 5

查看 doxygen 手册:

\n\n

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

\n\n

典型的语法是:

\n\n
PREDEFINED = "name1=value1" \\\n  "name2=value2" \\\n  "name3=value3"\n
Run Code Online (Sandbox Code Playgroud)\n\n

手册更详细地说:

\n\n
\n

标记的参数是\n 形式的宏列表:名称或名称=定义(无空格)。如果省略 de\xef\xac\x81nition 和“=”,则假定为“=1”。\n 为了防止通过 #undef 或 #undef 取消宏 de\xef\xac\x81nition 解\xef\xac\x81ned递归扩展使用 := 运算符\n 而不是 = 运算符。

\n
\n\n

如果你没有值,你可以简单地写“name” - 所以你的例子应该可以工作。

\n\n

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

\n\n
HIDE_UNDOC_CLASSES=NO\nEXTRACT_ALL=YES\nEXTRACT_LOCAL_CLASSES=YES\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

还要确保 ENABLE_PREPROCESSING 设置为 YES。

\n\n

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

\n