linux c/c++ 代碼使用 doxygen 自動生成文檔


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/

其他參考:

http://blog.csdn.net/blood008/article/details/6567169


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM