Doxygen 不读取用宏保护的代码

标签 doxygen

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

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

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

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

我将我的 doxygen PREDEFINED 设置如下:

预定义 = EXPERIMENTAL_FEATURE1 EXPERIMENTAL_FEATURE2

然而,这不会导致 doxygen 提取 doc。对于这些类(class)。日志显示 doxygen 读取文件。

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

我该如何调试?

最佳答案

查看 doxygen 手册:

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

典型的语法是:

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

更详细的手册说:

The argument of the tag is a list of macros of the form: name or name=definition (no spaces). If the definition and the "=" are omitted, "=1" is assumed. To prevent a macro definition from being undefined via #undef or recursively expanded use the := operator instead of the = operator.



如果你没有值(value),你可以简单地写下“名字”——所以你的例子应该可以工作。

确保您的 doxyfile 中的以下设置正确:
HIDE_UNDOC_CLASSES=NO
EXTRACT_ALL=YES
EXTRACT_LOCAL_CLASSES=YES

否则类不会放入文档中。

还要确保 ENABLE_PREPROCESSING 设置为 YES。

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

关于Doxygen 不读取用宏保护的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17173452/

相关文章:

c - Doxygen 不一致地扩展 C 宏

c++ - 氧气/C++ : how to link to anonymous namespace variables

python - 用 Doxygen 记录一个不存在的成员

c - C 的 Doxygen 输出

doxygen - 是否可以将 doxygen HTML 输出中的参数保留在一行?

version-control - 如何使用 MSBuild 将 AssemblyVersion 写入文件?

java - 在文档中显示方法体的一部分

objective-c - 如何在 Xcode 的自动完成弹出窗口中包含 Doxygen 方法描述?

html - 如何更改 doxygen 的背景图片?

python - 我可以使用 doxygen 来记录命令行程序吗?