使用Doxygen文檔開發工具時需要進行的配置:
可執行檔 doxygen 是原程式碼分析和產生文檔的主要工具. 請看 Doxygen usage 章節來擷取更詳細的使用協助.
Doxytag可執行檔---僅僅是用來實現協助程式員產生不需要看原代碼就能瞭解工程部署資訊的doxygen文檔的參考文檔( 例如:那些使用doxygen產生的文檔).請看Doxytag usage 章節來獲得更多的使用協助.
doxywizard 可執行檔很容易就能使用,它是用來為doxygen工具提供配置資訊的一個圖形化工具.
下面的圖顯示了開發工具之間的相互關係資訊:
infoflow.gif
圖:Doxygen information flow
Step 1: 建立一個設定檔
Doxygen使用一個設定檔來確定它所有的設定. 每個工程都應該有它自己的設定檔.
一個工程可以只有一個原檔案, 也可以是工程中所有原檔案的遞迴掃描得到的原檔案的樹狀檢視。
為了簡化doxygen組建組態檔案的工作, doxygen 可以為你提供一個模板化的設定檔.
1. 為了建立一個模板化的設定檔,只需要調用doxygen並從命令列中敲入-g:
doxygen -g <config-file>
其中 <config-file>是某個模板化的設定檔的檔案名稱. 如果你省略了檔案名稱, doxygen會為你產生一個預設的Doxyfile的設定檔. 如果<config-file>是一個已經存在的檔案名稱, doxygen 在組建組態模板之前,將會產生一個 <config-file>. Bak備份檔案。
2. 如果你使用 - (例如:減號) 作為檔案名稱doxygen將會把你從鍵盤輸入的文字當作設定檔名。
設定檔有著和Makefile相似的格式.主要是:包含了很多的“標誌”分配符格式 (tags):
例如:
TAGNAME = VALUE or
TAGNAME = VALUE1 VALUE2 ...
在產生文件範本時,你可以使用預設(即:保留大多數的TAGS)詳細資料請看 Configuration 這一章節來擷取更多的資訊.
如果你不想使用文本編輯工具來編寫設定檔,你應該看看 doxywizard 章節的描述, 它是一個可以用來建立/讀/寫doxygen 配置文檔的圖形化工具,同時它也可以在路徑中進行全路徑配置來使doxygen正常工作。
3. 對於一個有很少的原檔案和標頭檔組成的C/C++工程來說, 你可以保留 INPUT 標誌為“空” ,那麼 doxygen 將會在當前路徑下搜尋原檔案.
4. 如果你的工程很大,你應該把你的工程檔案的“根目錄”放在INPUT標誌後面,需要添加到工程中的檔案應該放到FILE_PATTERNS 標誌之後(例如: *.cpp *.h). 至少是匹配了1項的檔案才能被doxygen程式讀入並分析(如果省略了這項設定,則會使用doxygen配置列表中的格式).
5. 如果想要遞迴對原檔案樹進行分析必須設定RECURSIVE標誌為 YES.
6. 想在doxygen中使用更多的自訂規則進行分析,必須使用EXCLUDE標誌和 EXCLUDE_PATTERNS標誌。
7. 想忽略所有的 test路徑下的檔案,使用下面的形式:
EXCLUDE_PATTERNS = */test/*
8. 對於C/C++檔案Doxygen通常直接進行分析。 如果檔案有 .idl或 .odl 副檔名,則doxygen會把它視為 IDL檔案。
8. 有.java 副檔名的將被視為Java檔案.
9. 使用 .cs作為副檔名的檔案將會視為C# 檔案.
10. 使用.php, .php4副檔名的檔案和用.inc 或 .phtml 副檔名的檔案將被視為PHP 原檔案.
11. 如果你想用doxygen為已經存在的工程產生文檔。你首先要想象一下你的工程文檔最終使用什麼樣的格式排版,為了實現這樣的目標,你必須要設定EXTRACT_ALL 標誌為YES. 然後,doxygen表現出來的是它知道了所有你的工程檔案的配置目標。
注意:如果設定EXTRACT_ALL 標誌為YES 。則:undocumented members 之類的警告將不會再產生。
12. 使用doxygen來分析一個現存的原始碼的某個部分或全部檔案可以更清晰的明白原始碼各個功能模組的定義和要實現的功能以及它們之間的交叉參考。
13. 使用Doxygen 產生交叉參考必須設定SOURCE_BROWSER 標誌為 YES。也可以直接通過設定INLINE_SOURCES 標誌為 YES 來實現把工程的所有原始碼包含進文檔中。(這樣方便了代碼的通覽).
Step 2: Running doxygen
To generate the documentation you can now enter:
doxygen <config-file>
Doxygen 將會在輸出路徑中建立html, rtf, latex和/或man 路徑。 路徑和路徑中的檔案格式是對應的HTML, RTF, 和Unix-Man格式.
預設的路徑是doxygen的安裝路徑。可以使用 OUTPUT_DIRECTORY, HTML_OUTPUT, RTF_OUTPUT, LATEX_OUTPUT, 和MAN_OUTPUT標誌來自訂配置文檔的輸出路徑。如果輸出路徑不存在doxygen將會為你建立一個輸出路徑。
產生的 HTML 可以通過使用瀏覽器瀏覽位於html路徑下的 index.html 檔案. 如果瀏覽器支援層疊樣式表 (CSS) 那就更棒了。
產生的 必須要先用 編譯器進行編譯(我使用 teTeX 0.9版本,其中包含了 3.14159). 為了簡化編譯文檔的產生過程,doxygen在latex 路徑下提供了一個Makefile 。在命令列latex路徑下敲入 make將會產生一個refman.dvi檔案。 (假設你有一個檔案叫做make of course). 你可以通過使用xdvi命令來查看這個檔案或者使用dvips把它轉換成一個尾碼是.ps的檔案 refman.ps。
想實現分成2頁的效果可以使用make ps_2on1命令。PostScript檔案最終會被發送到PostScript印表機輸出。如果你沒有PostScript印表機,你可以使用ghostscript 命令把PostScript檔案格式轉換成你的印表機能夠識別的檔案格式。如果你已經安裝了ghostscript 解釋程式,那麼可以把檔案轉換成 PDF格式,這隻需要敲入make pdf (或make pdf_2on1)。
想產生PDF檔案,你要把 PDF_HYPERLINKS 標誌設定成YES。
產生的man分頁檔可以通過man程式來進行查看。但是,你必須確定man路徑有相應的環境變數設定 (一般在 MANPATH環境變數中)。注意:man分頁檔的格式有一些限制 ,所以有些資訊(像:class圖,交叉參考,公式等)將會丟失掉。
Step 3: Documenting the sources
儘管原始碼編製文檔的被作為第3步,但是,在某些新的工程中,這個是作為第1步來做的。 這裡,我假設你已經有了一些想用doxygen來對其進行文檔化(描述API介面和作用)的原始碼。
如EXTRACT_ALL 選項被設定成NO(預設情況下是NO )那麼doxygen只會為已經文檔化的成員,檔案,類和命名空間產生文檔。如果你的文檔屬於這種情況,該怎麼辦呢?對於成員,類和命名空間有2種基本的設定:
1.成員,類或命名空間的前面安排一個描述或定義的塊兒。對於檔案,類和命名空間成員來說,doxygen 允許直接在成員後面安排文檔。你可以參考:
Special documentation blocks 瞭解更多特殊塊兒的設定。
2. 想在任何地方部署特殊的文檔塊兒(任何的檔案或任何的路徑)和在文檔塊中添加一個“結構化”的命令。“結構化”的命令用來設定一個可被編製成文檔的連結。 (e.g. a member, class, namespace or file)。請看:Documentation at other places 瞭解更多的結構化命令的使用方法。
檔案只能使用上面2中的方法進行設定,因為沒有辦法把一個文檔塊兒放到一個檔案的前面。
當然,檔案成員(函數,變數,類型定義,define)不需要顯示的使用“結構化”命令,只需要把特殊的文檔塊兒放到檔案中的最前面或最後面就可以了。
文檔內部的文檔塊兒在輸出為HTML格式或其他格式輸出檔案之前進行doxygen的文法分析:
它其實是在進行下面的步驟前進行分析:
文檔內部的特殊“結構化”命令被執行的時候。請看: Special Commands 章節擷取所有的命令參考資訊。
如果某行中使用“空格+後面使用1個或多個*號”,或者是很多的“空格”符,則所有的空格和“*”號都會被刪除。
所有的“空行”都會被視為“圖形分隔字元”。這項安排可以使你有“部署自訂圖形分隔字元”的能力,以產生更具可讀性的文檔。
Doxygen將會為所有已經歸檔的classes產生連結。
如果在文檔中找到符合doxygen文檔格式的成員,那麼也會為members建立連結。請參考:Automatic link generation擷取更多的如何自動化文檔連結。
文檔中的HTML標誌被解釋和轉換成相應的輸出。請看:HTML Command