連結外部文件

如果您的專案依賴外部函式庫或工具,有幾個原因不應在每次執行 Doxygen 時都包含這些外部來源的所有程式碼:

磁碟空間
某些文件可能已經在 Doxygen 輸出目錄之外提供,例如在網路上的某處。 您可能想要連結到這些頁面,而不是在您的本機輸出目錄中產生文件。
編譯速度
外部專案通常與您自己的專案有不同的更新頻率。 即使沒有任何變更,讓 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

前往下一節或返回索引