www.doxygen.org 的使用非常方便,下面分成2步介紹一下
1. 注釋風格,需要在c/c++代碼中按照下面的風格添加注釋,基本上還是很順手的
C++的注釋風格 主要使用下面這種樣式:即在注釋塊開始使用三個反斜杠‘/’
文件注釋
/**
*@file 文件名
*@brief 概述
*
*詳細概述
*
*@author 作者,包含email等
*@version 版本號(maj.min,主版本.分版本格式)
*@date 日期
*/
命名空間的注釋
///@brief 簡單概述
///
///詳細概述
類定義注釋
對需要的類增加注釋,需要 說明類的設計方法,類的使用指南,說明類的不變項
///@brief 簡要概述
///
///詳細說明
///
///使用指南設計函數調用可以@ref 函數名 用於引用其他的說明
///
///其他說明,重寫父類函數加以特殊實現
///
///@invariant 類不變項,例如哪些值不會超多少多少
///
class xxx
{…
數據聲明注釋
行尾說明
Type varName;///< 說明
多行說明
///說明
///
///
Type varName;
函數注釋規范
///@brief 簡單概述
///
///詳細說明
///@param[in|out] 參數名,in,out表示輸入還是輸出
///@pre 前者條件
///@return 說明
///@retval 返回值 說明, 這個是可選的
///@post 說明函數完成后的世界狀態
代碼標記數值規范
///@todo 將要做的代碼
///@bug 表示此處的bug描述
枚舉變量的注釋示例
/// 顏色的枚舉定義
///
/// 該枚舉定義了系統中需要用到的顏色\n
/// 可以使用該枚舉作為系統中顏色的標識
enum TEnum
{
RED, ///< 枚舉,標識紅色
BLUE, ///< 枚舉,標志藍色
YELLOW ///< 枚舉,標志黃色.
}enumVar;
附:Doxygen支持的指令
概述
可以在注釋中加一些Doxygen支持的指令,主要作用是控制輸出文檔的排版格式,使用這些指令時需要在前面加上“\”或者“@”(JavaDoc風格)符號,告訴Doxygen這些是一些特殊的指令,通過加入這些指 令以及配備相應的文字,可以生成更加豐富的文檔,下面對比較常用的指令做一下簡單介紹。
常用指令介紹
@file |
檔案 的批注說明。 |
@author |
作者 的信息 |
@brief |
用於class 或function的簡易說明 eg: @brief 本函數負責打印錯 誤信息串 |
@param |
主要 用於函數說明中,后面接參數的名字,然后再接關於該參數的說明 |
@return |
描述 該函數的返回值情況 eg: @return 本函數返回執 行結果,若成功則返回TRUE,否則返回FLASE |
@retval |
描述 返回值類型 eg: @retval NULL 空字 符串。 @retval !NULL 非 空字符串。 |
@note |
注解 |
@attention |
注意 |
@warning |
警告 信息 |
@enum |
引用了某個枚舉,Doxygen會在該枚舉處產生一個鏈接 eg: @enum CTest::MyEnum |
@var |
引用了某個變量,Doxygen會在該枚舉處產生一個鏈接 eg: @var CTest::m_FileKey |
@class |
引用 某個類, 格式:@class <name> [<header-file>] [<header-name>] eg: @class CTest "inc/class.h" |
@exception |
可能 產生的異常描述 eg: @exception 本函數 執行可能會產生超出范圍的異常 |
==================
2 linux下使用doxygen
我的開發環境是ubuntu, 默認有doxygen 命令,如果沒有可以從官網下載一個編譯安裝之
doxygen工具的使用簡單的2步就夠了:
2.1 生成默認配置文檔
doxygen -s -g yourconfigname
這一條命令就可以生成一個叫 “yourconfigname” 的配置文檔
接下來需要打開這個文檔,對其中某些字段做配置,一般來說,只需要配置其中十幾個字段就可以:
# 項目名稱,將作為於所生成的程序文檔首頁標題
PROJECT_NAME = “Test“
# 文檔版本號,可對應於項目版本號,譬如 svn 、 cvs 所生成的項目版本號
PROJECT_NUMBER = "1.0.0”
# 程序文檔輸出目錄
OUTPUT_DIRECTORY = doc/
# 程序文檔語言環境
OUTPUT_LANGUAGE = Chinese
# 如果是制作 C 程序文檔,該選項必須設為 YES ,否則默認生成 C++ 文檔格式
OPTIMIZE_OUTPUT_FOR_C = YES
# 對於使用 typedef 定義的結構體、枚舉、聯合等數據類型,只按照 typedef 定義的類型名進行文檔化
TYPEDEF_HIDES_STRUCT = YES
# 在 C++ 程序文檔中,該值可以設置為 NO ,而在 C 程序文檔中,由於 C 語言沒有所謂的域 / 名字空間這樣的概念,所以此處設置為 YES
HIDE_SCOPE_NAMES = YES
# 讓 doxygen 靜悄悄地為你生成文檔,只有出現警告或錯誤時,才在終端輸出提示信息
QUIET = YES
# 只對頭文件中的文檔化信息生成程序文檔
FILE_PATTERNS = *.h
# 遞歸遍歷當前目錄的子目錄,尋找被文檔化的程序源文件
RECURSIVE = YES
# 示例程序目錄
EXAMPLE_PATH = example/
# 示例程序的頭文檔 (.h 文件 ) 與實現文檔 (.c 文件 ) 都作為程序文檔化對象
EXAMPLE_PATTERNS = *.c *.h
# 遞歸遍歷示例程序目錄的子目錄,尋找被文檔化的程序源文件
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
# 讓 doxygen 從配置文件所在的文件夾開始,遞歸地搜索所有的子目錄及源文件
RECURSIVE = YES
# 在最后生成的文檔中,把所有的源代碼包含在其中
SOURCE BROWSER = YES
$ 這會在 HTML 文檔中,添加一個側邊欄,並以樹狀結構顯示包、類、接口等的關系
GENERATE TREEVIEW = ALL
2.2 執行命令
doxygen yourconfigname
這一條命令就可以在指定的目錄下生成 html 目錄(根據配置決定,也可以生成幫助文檔等)
2.3 用apache等存放剛剛生成的html目錄
比如我的機器安裝了apache,則可以在 /var/run/www 目錄下建一個軟連接
連接到剛剛生成好的 html 目錄,然后就可以從瀏覽器訪問文檔了,下面是我的項目的文檔界面
下面這個是win上面使用的例子:http://wildpointer.net/2012/04/14/doxygen_graphviz/
其他參考: