【发布时间】:2016-04-18 23:53:34
【问题描述】:
我正在向一个使用 Doxygen 记录的大型库添加代码。我希望某些文件不包含在 Doxygen 文档中。
doxyfile 包含许多用于包含和排除特定文件的控件,但由于许多人为这个库做出了贡献,我宁愿避免修改 doxyfile。
是否有任何特殊命令可以放入文件本身,指示 Doxygen 忽略整个文件?
【问题讨论】:
我正在向一个使用 Doxygen 记录的大型库添加代码。我希望某些文件不包含在 Doxygen 文档中。
doxyfile 包含许多用于包含和排除特定文件的控件,但由于许多人为这个库做出了贡献,我宁愿避免修改 doxyfile。
是否有任何特殊命令可以放入文件本身,指示 Doxygen 忽略整个文件?
【问题讨论】:
您不能通过特殊命令忽略文件,但您可以通过将静态或相对路径添加到应排除在 @ 987654321@标签,如:
EXCLUDE = ./../lib/stdio.h
这样您还可以从文档中排除整个目录:
EXCLUDE = ./../lib
您还可以使用EXCLUDE_PATTERNS 标记并使用通配符模式,例如:
EXCLUDE_PATTERNS = */test/*
希望这会有所帮助。
【讨论】:
BigBobby:“由于很多人为这个库做出了贡献,我宁愿避免修改 doxyfile。”
考虑到您可以在同一个项目中拥有多个 doxyfile。你可以复制一个已经可用的,添加你需要的,然后用不同的名字保存它(例如 doxyfile_BigBobby)。
特别是,我通常在项目中放置两个 doxyfile,一个用于最终用户文档(仅包含接口),另一个用于开发人员。
【讨论】:
How can I make doxygen ignore some code fragment? 展示了如何做到这一点。您可以将 \cond 放在开头,将 \endcond 放在结尾。另见How to comment out comment in Doxygen documentation
请注意,虽然仍会包含该文件,但该文件的内容将被忽略。
如何让 doxygen 忽略某些代码片段?
最简单的新方法是添加一个带有 \cond 的注释块 开头的命令和一个带有 \endcond 命令的注释块 应该被忽略的代码段的结尾。这应该是 当然在同一个文件中。
但是你也可以使用 Doxygen 的预处理器:如果你放
#ifndef DOXYGEN_SHOULD_SKIP_THIS /* code that must be skipped by Doxygen */ #endif /* DOXYGEN_SHOULD_SKIP_THIS */围绕应该隐藏和放置的块:
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS在配置文件中,所有块都应该被 Doxygen 跳过为 只要ENABLE_PREPROCESSING 设置为YES。
【讨论】: