如果您的项目依赖于外部库或工具,那么有几个原因不应在每次运行 Doxygen 时都包含这些库或工具的所有源文件:
如果外部包及其文档的版权属于他人,那么引用它而不是在您的项目文档中包含它的副本可能会更好——甚至是必要的。如果作者禁止重新分发,这是必要的。如果作者要求遵守某些许可条件作为重新分发的前提,并且您不想受这些条件的约束,那么引用他们的文档副本比包含副本更可取。
如果以上任何一项适用,您可以使用 Doxygen 的标签文件机制。标签文件本质上是外部源文件中发现的实体的紧凑表示。Doxygen 既可以生成也可以读取标签文件。
要为您的项目生成标签文件,只需在配置文件中的 GENERATE_TAGFILE 选项后输入标签文件的名称即可。
要将一个或多个外部项目的输出与您自己的项目结合起来,您应该在配置文件中的 TAGFILES 选项后指定标签文件的名称。
标签文件通常只包含文档相对于 Doxygen 运行位置的相对位置。因此,当您在其他项目中包含标签文件时,您必须指定外部文档相对于该项目的位置。您可以在配置文件中通过将(相对)位置分配给在 TAGFILES 配置选项后指定的标签文件来完成此操作。如果您使用相对路径,它应该相对于生成项目 HTML 输出的目录;因此,它是从一个项目的 HTML 输出目录到链接到的另一个项目的 HTML 输出的相对路径。
proj 的项目,它使用两个名为 ext1 和 ext2 的外部项目。目录结构如下所示:<root> +- proj | +- html HTML output directory for proj | +- src sources for proj | |- proj.cpp +- ext1 | +- html HTML output directory for ext1 | |- ext1.tag tag file for ext1 +- ext2 | +- html HTML output directory for ext2 | |- ext2.tag tag file for ext2 |- proj.cfg Doxygen configuration file for proj |- ext1.cfg Doxygen configuration file for ext1 |- ext2.cfg Doxygen configuration file for ext2
OUTPUT_DIRECTORY = proj
INPUT = proj/src
TAGFILES = ext1/ext1.tag=../../ext1/html \
ext2/ext2.tag=../../ext2/html
ext1.cfgOUTPUT_DIRECTORY = ext1 GENERATE_TAGFILE = ext1/ext1.tagext2.cfg
OUTPUT_DIRECTORY = ext2 GENERATE_TAGFILE = ext2/ext2.tag