链接到外部文档

如果您的项目依赖于外部库或工具,那么有几个理由不将这些库的所有源代码都包含在每次运行 Doxygen 时:

磁盘空间
某些文档可能已经在 Doxygen 输出目录之外可用,例如在 Web 上的某个地方。您可能希望链接到这些页面,而不是在本地输出目录中生成文档。
编译速度
外部项目通常与您自己的项目有不同的更新频率。即使没有任何更改,让 Doxygen 反复解析这些外部项目的源代码也没有多大意义。
内存
对于非常大的源代码树,让 Doxygen 解析所有源代码可能会占用您系统过多的内存。通过将源代码划分为几个“包”,Doxygen 可以解析一个包的源代码,而该包所依赖的所有其他包都以外部方式链接进来。这可以节省大量内存。
可用性
对于一些使用 Doxygen 文档化的项目,可能只是没有源代码。
版权问题

如果外部包及其文档属于其他人的版权,那么最好 - 甚至有必要 - 引用它,而不是将它的副本包含在您项目的文档中。当作者禁止重新分发时,这是必要的。如果作者要求遵守某些许可条件作为重新分发的前提条件,而您不想受这些条件的约束,那么引用他们自己的文档副本比包含副本更可取。

如果以上任何一种情况适用,您可以使用 Doxygen 的标签文件机制。标签文件基本上是外部源代码中找到的实体的紧凑表示。Doxygen 可以生成和读取标签文件。

要为您的项目生成标签文件,只需将标签文件的名称放在配置文件中 GENERATE_TAGFILE 选项之后。

要将一个或多个外部项目的输出与您自己的项目组合在一起,您应该在配置文件中 TAGFILES 选项之后指定标签文件的名称。

标签文件通常只包含从 Doxygen 运行位置到文档的相对位置。因此,当您在其他项目中包含标签文件时,您必须指定外部文档相对于该项目的位置。您可以在配置文件中通过将(相对)位置分配给在 TAGFILES 配置选项后指定的标签文件来完成此操作。如果您使用相对路径,它应该相对于您项目 HTML 输出生成的目录;因此,它是从项目 HTML 输出目录到链接到的另一个项目的 HTML 输出的相对路径。

示例
假设您有一个名为 proj 的项目,它使用了两个名为 ext1ext2 的外部项目。目录结构如下所示
<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
那么,配置文件的相关部分如下所示
proj.cfg
OUTPUT_DIRECTORY  = proj
INPUT             = proj/src
TAGFILES          = ext1/ext1.tag=../../ext1/html \
                    ext2/ext2.tag=../../ext2/html 
ext1.cfg
OUTPUT_DIRECTORY  = ext1
GENERATE_TAGFILE  = ext1/ext1.tag 
ext2.cfg
OUTPUT_DIRECTORY  = ext2
GENERATE_TAGFILE  = ext2/ext2.tag

转到下一部分或返回到索引