C/C++工具:Doxygen最簡使用說明

  • 編程技能:編寫可讀可維護的代碼
  • 編程技巧:編寫優化高效的代碼

簡介

開源跨平臺的注釋文檔生成工具。

安裝

  1. 下載
  2. 解壓tar zxvf doxygen壓縮包
  3. 切換到解壓后的doxygen主目錄cd doxygen解壓目錄
  4. 創建build目錄mkdir build
  5. 切換到build目錄cd build
  6. 生成Linux Makefilecmake -G "Unix Makefiles" ../
  7. 編譯make
  8. 安裝make install

使用

  1. 進入項目目錄cd 項目目錄
  2. 生成配置文件doxygen –g (默認配置文件名為Doxyfile)
  3. 生成文檔文件doxygen

配置文件

# 項目名稱,將作為于所生成的程序文檔首頁標題
PROJECT_NAME        = “Test”
# 文檔版本號,可對應于項目版本號,譬如 svn、cvs 所生成的項目版本號
PROJECT_NUMBER      = "1.0.0
# 程序文檔輸出目錄
OUTPUT_DIRECTORY    =  /home/user1/docs
 
# 程序文檔輸入目錄 
INPUT                = /home/user1/project/kernel
 
# 程序文檔語言環境
OUTPUT_LANGUAGE      = Chinese
DOXYFILE_ENCODING  = UTF-8
# 只對頭文件中的文檔化信息生成程序文檔 
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
No. 文件格式 選項 默認值 作用 相關選項
1 LaTeX GENERATE_LATEX YES/NO YES 產生LaTeX的文件 LATEX_OUTPUT輸出目錄,默認latex
2 rtf GENERATE_RTF YES/NO YES 產生rtf的文件 RTF_OUTPUT輸出目錄,默認rtf
3 man GENERATE_MAN YES/NO NO Unix Man Page 格式 MAN_OUTPUT輸出目錄,默認man
2 rtf GENERATE_XML YES/NO NO 產生xml的文件 XML_OUTPUT輸出目錄,默認xml

語法簡介

  • 簡單注釋
  • 單行注釋:///或者//!
  • 多行注釋:/**或者/*!
  • 文件注釋
/**
 * @file 文件名
 * @brief 簡介
 * @details 細節
 * @mainpage 工程概覽
 * @author 作者
 * @version 版本號
 * @date 年-月-日
 */
  • 全局常量/變量/宏定義/結構體定義/類定義的注釋
  • 代碼前注釋
/// 注釋
全局常量/變量/宏定義/結構體定義/類定義

例如:

/// 緩存大小
#define BUFSIZ 1024*4
  • 代碼后注釋
全局常量/變量/宏定義/結構體定義/類定義 ///< 注釋

例如:

#define BUFSIZ 1024*4 ///< 緩存大小
  • 函數注釋
/**
 * @brief 函數簡介
 *
 * @param 形參 參數說明
 * @param 形參 參數說明
 * @return 返回值說明
*/

例如:

/**
 * @brief 主函數
 * @details 程序唯一入口
 *
 * @param argc 命令參數個數
 * @param argv 命令參數指針數組
 * @return @c 0 程序執行成功
 *               @c 1 程序執行失敗
*/
int main(int argc, char* argv[]){
}
命令 生成字段名
@param 參數
@return 返回值
@p 參數(后面緊接單詞是參數)
@c 代碼(后面緊接單詞是代碼)
  • 其它常用命令
命令 生成字段名 說明
@attention 注意
@bug 缺陷 鏈接到所有缺陷匯總的缺陷列表
@warning 警告
@see 參考
@code 代碼塊開始 @endcode成對使用
@endcode 代碼塊結束 @code成對使用
@todo TODO 鏈接到所有TODO 匯總的TODO 列表

其他

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • Ubuntu的發音 Ubuntu,源于非洲祖魯人和科薩人的語言,發作 oo-boon-too 的音。了解發音是有意...
    螢火蟲de夢閱讀 99,560評論 9 467
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數據革命閱讀 12,218評論 2 33
  • I never dreamed about success. I worked for it. 我從未夢想成功,我...
    hello2333閱讀 166評論 0 0
  • 其實原本在更新完就該完結了。但是,今天還想再啰嗦幾句,順便曬一下我的攻略思維導圖。 和朋友結伴旅行,其實是一件考驗...
    SHEROtomorrow閱讀 255評論 0 0