一、簡介
Doxygen是一種開源跨平台的,以類似JavaDoc風格描述的文檔系統,完全支持C、C++、Java、Objective-C和IDL語言,部分支持PHP、C#。注釋的語法與Qt-Doc、KDoc和JavaDoc兼容。Doxgen可以從一套歸檔源文件開始,生成HTML格式的在線類瀏覽器,或離線的LATEX、RTF參考手冊。
二、安裝
需安裝doxygen和用於支持doxygen的圖像化工具graphviz,步驟如下:
1、安裝doxygen
1、資源下載:doxygen-1.7.4.linux.bin.tar.gz
http://www.stack.nl/~dimitri/doxygen/download.html
2、編譯安裝
1) tar xvfz doxygen-1.7.4.linux.bin.tar.gz 2) cd doxygen-1.7.4 3) ./configure 4) make 5) make install
參考:http://blog.chinaunix.net/uid-21809556-id-1814825.html
2、安裝graphviz
1、執行如下命令即可完成安裝
yum install graphviz
三、配置使用
1、在項目工程目錄下生成配置文件
cd test/ #進入項目目錄(test為例說明)
Doxygen –g #生成配置文件
提示:
1、默認生成的配置文件名為 "Doxyfile",也可以指定生成的配置文件名:doxygen -g your-cfg-filename
2、可以在生成配置文件的命令中添加 "-s" 選項,生成不含注釋的配置文件:doxygen -sg
2、根據需要,修改配置文件
模板鏈接:http://files.cnblogs.com/files/274914765qq/DoxyfileExample.tar.gz
常用選項如下:
# 項目名稱,將作為於所生成的程序文檔首頁標題 PROJECT_NAME = “Test”
# 文檔版本號,可對應於項目版本號,譬如 svn、cvs 所生成的項目版本號 PROJECT_NUMBER = "1.0.0
# 程序文檔輸出目錄
OUTPUT_DIRECTORY = /home/user1/docs
# 程序文檔輸入目錄
INPUT = /home/user1/project/kernel
# 程序文檔語言環境 OUTPUT_LANGUAGE = Chinese
# 只對頭文件中的文檔化信息生成程序文檔
FILE_PATTERNS =
# 遞歸遍歷當前目錄的子目錄,尋找被文檔化的程序源文件
RECURSIVE = YES
# 如果是制作 C 程序文檔,該選項必須設為 YES,否則默認生成 C++ 文檔格式 OPTIMIZE_OUTPUT_FOR_C = YES
#提取信息,包含類的私有數據成員和靜態成員
EXTRACT_ALL = yes EXTRACT_PRIVATE = yes EXTRACT_STATIC = yes
# 對於使用 typedef 定義的結構體、枚舉、聯合等數據類型,只按照 typedef 定義的類型名進行文檔化 TYPEDEF_HIDES_STRUCT = YES
# 在 C++ 程序文檔中,該值可以設置為 NO,而在 C 程序文檔中,由於 C 語言沒有所謂的域/名字空間這樣的概念,所以此處設置為 YES HIDE_SCOPE_NAMES = YES
# 讓 doxygen 靜悄悄地為你生成文檔,只有出現警告或錯誤時,才在終端輸出提示信息 QUIET = YES
# 遞歸遍歷示例程序目錄的子目錄,尋找被文檔化的程序源文件 EXAMPLE_RECURSIVE = YES
# 允許程序文檔中顯示本文檔化的函數相互調用關系 REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES REFERENCES_LINK_SOURCE = YES
# 不生成 latex 格式的程序文檔 GENERATE_LATEX = NO
# 在程序文檔中允許以圖例形式顯示函數調用關系,前提是你已經安裝了 graphviz 軟件包 HAVE_DOT = YES CALL_GRAPH = YES CALLER_GRAPH = YES
#在最后生成的文檔中,把所有的源代碼包含在其中 SOURCE BROWSER = YES
$這會在HTML文檔中,添加一個側邊欄,並以樹狀結構顯示包、類、接口等的關系
GENERATE TREEVIEW = ALL
3、程序注釋文檔化
使用Doxygen,需要按照Doxygen 的游戲規則來對程序源碼進行文檔化。
Doxygen 的注釋類型可分為:
1、行間注釋:注釋語句不與程序源碼出現在同一行,主要用於注釋頭文件中出現的結構體 (struct)、枚舉 (enum)、聯合 (uion) 等數據類型,以及程序接口的功能與使用約定; 2、行內注釋:注釋語句與程序源碼出現在同一行內,主要用於代碼的局部注釋。
詳細語法參考:http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html
4、文檔生成
cd test/
doxygen
提示:
可以指定配置文件名:doxygen your-cfg-filename
5、文檔使用
生成的文檔位於test/doc/html 目錄中,使用瀏覽器打開該目錄中的 index.html 文件,即可看到自己的工作成果。