用doxygen+graphviz自動化生成代碼文檔(附詳細教程)

1、引子html

用這兩個工具能夠自動的遍歷代碼,而且產生代碼文檔,咱們先來看看效果,而後放出這兩個工具的下載地址。app

 

 

 

2、工具的下載地址函數

doxygen:http://www.stack.nl/~dimitri/doxygen/download.html工具

graphviz:http://www.graphviz.org/測試

 

3、使用步驟ui

首先安裝doxygen,而後解壓下載好的graphviz。接着打開doxygen,按照我下面的圖示進行操做就行了。url

最後點run就能夠了。spa

 

附上doxygen能識別的一些註釋,這裏僅僅是比較經常使用的,不是所有。爲了說明清楚,我把註釋和代碼一塊兒貼上。.net

package com.example.kale.myapplication;

/**
 * Created by Jack Tony on 2015/4/3.
 * @brief 這個類是作什麼的
 */
public class TestClass {

  /// 枚舉
  enum TYPE
    {
        TYPE_01,/*!< 枚舉項01 */
        TYPE_02,///< 枚舉項02
    };

    /**
     * 
     * <pre><b>copyright: kale</b></pre>
     * <pre><b>email: </b>developer_kale@qq.com</pre>
     * <pre><b>company: </b>http://www.cnblogs.com/tianzhijiexian/</pre>
     * <pre><b>All rights reserved.</b></pre>
     * @see 參考項 http://www.cnblogs.com/tianzhijiexian/
     * @brief 方法的簡單說明
     * @author 做者的信息
     * @date 2011/8/24 8:37:56
     * @version 0.1
     * @retval c 描述返回值的類型
     * @note 註解,能夠是詳細的註解
     * @remarks   備註事項(remaks)
     * @attention 注意事項(attention)
     * @warning 警告信息
     * @param a 參數a的說明
     * @param b 參數b的說明
     * @return 本函數返回執行結果
     * 
     * @throws Exception
     */
    public String testFunction(int a, String b)  throws Exception{
        return "hello world";
    }
}

輸出的測試結果:3d

 

詳細的步驟圖片下載:http://download.csdn.net/detail/shark0017/8564357

 

下面的詳細說明轉自:http://blog.chinaunix.net/uid-23670869-id-2948890.html

         Project頁面,主要包括項目的基本配置。
             TAB_SIZE 主要是幫助文件中代碼的縮進尺寸,譬如@code和@endcode段中代碼的排版,建議符合習慣,設置成4。
             OPTIMIZE_OUTPUT_FOR_C 這個選項選擇後,生成文檔的一些描述性名稱會發生變化,主要是符合C習慣。若是是純C代碼,建議選擇。
             SUBGROUPING這個選項選擇後,輸出將會按類型分組。
               
         Build頁面,這個頁面是生成幫助信息中比較關鍵的配置頁面
             EXTRACT_ALL 表示輸出全部的函數,可是private和static函數不屬於其管制。
             EXTRACT_PRIVATE 表示輸出private函數。
             EXTRACT_STATIC 表示輸出static函數。同時還有幾個EXTRACT,相應查看文檔便可。
             HIDE_UNDOC_MEMBERS 表示那些沒有使用doxygen格式描述的文檔(函數或類等)就不顯示了。固然,若是EXTRACT_ALL被啓用,那麼這個標誌實際上是被忽略的。
             INTERNAL_DOCS 主要指是否輸出註解中的@internal部分。若是沒有被啓動,那麼註解中全部的@internal部分都將在目標幫助中不可見。
             CASE_SENSE_NAMES 是否關注大小寫名稱,注意,若是開啓了,那麼全部的名稱都將被小寫。對於C/C++這種字母相關的語言來講,建議永遠不要開啓。
             HIDE_SCOPE_NAMES 域隱藏,建議永遠不要開啓。
             SHOW_INCLUDE_FILES 是否顯示包含文件,若是開啓,幫助中會專門生成一個頁面,裏面包含全部包含文件的列表。
             INLINE_INFO 若是開啓,那麼在幫助文檔中,inline函數前面會有一個inline修飾詞來標明。
             SORT_MEMBER_DOCS 若是開啓,那麼在幫助文檔列表顯示的時候,函數名稱會排序,不然按照解釋的順序顯示。
             GENERATE_TODOLIST 是否生成TODOLIST頁面,若是開啓,那麼包含在@todo註解中的內容將會單獨生成並顯示在一個頁面中,其餘的GENERATE選項同。
             SHOW_USED_FILES 是否在函數或類等的幫助中,最下面顯示函數或類的來源文件。
             SHOW_FILES 是否顯示文件列表頁面,若是開啓,那麼幫助中會存在一個一個文件列表索引頁面。

         Messages頁面主要用來設置編譯時的輸出信息選項。編譯時的輸出信息,主要能夠用來提醒一些輸入的錯誤語法。
             QUIET 若是開啓,那麼表示關閉編譯時的輸出信息。
             WARN_FORMAT 表示日誌輸出的格式,不必修改。
             WARN_LOGFILE 表示信息是否輸出到LOG文件,由於有DoxyWizard的存在,因此這個選項沒有必要使用。


         HTML頁面
             CHM_FILE 表示輸出的chm文件路徑
             GENERATE_CHI 表示索引文件是否單獨輸出,建議關閉。不然每次生成兩個文件,比較麻煩。             
             TOC_EXPAND 表示是否在索引中列舉成員名稱以及分組(譬如函數,枚舉)名稱。
             這個頁面關係到生成chm的問題,不過不少選項很簡單,一看便知。

 

         Preprocessor 頁面是預處理頁面,裏面也有一些配置,可是我的感受使用默認就好了。其餘的幾個頁面,基本上都要依賴於某些其餘第三方的模塊,儘管有些doxygen自帶了,可是其詳細說明,還得考讀者自行研究。

 

         同時附上經常使用的doxygen命令列表。注意doxygen的註解命令主要分紅doxygen自建命令,HTML命令方式和XML命令方式。全部的命令都是以'\'或者'@'字符開頭,這代表若是你的註釋中有'\'開頭的單詞,你必需要修改爲'\\'。

         因爲doxygen命令比較多,另外就是doxygen的幫助文檔也是很是完善,因此,這裏僅僅列舉幾個經常使用的命令,其餘命令請自行參考幫助文件。

@addtogroup 添加到一個組。
@brief  概要信息
@deprecated 已廢棄函數
@details  詳細描述
@note  開始一個段落,用來描述一些注意事項
@par  開始一個段落,段落名稱描述由你本身指定
@param  標記一個參數的意義
@code .. @endcode 包含一段代碼
@fn  函數說明
@ingroup 加入到一個組
@return  描述返回意義
@retval  描述返回值意義
@include 包含文件

如何像MSDN那樣在左邊的樹中顯示函數列表?
       打開[Expert...]的HTML頁面,而後選中TOC_EXPAND便可。

 

參考自:

http://blog.csdn.net/liuxuezong/article/details/6713807
http://www.cnblogs.com/homezzm/archive/2013/07/02/3166602.html
http://wenku.baidu.com/link?url=XtIQOfIvSriE9_MWDqhxsPfxm9OAVpCwcwkLunBVIr7Im9FVKBy9ZB2-ZdjiSpT0obgs8Gh12NXVs02oRJ54Sj3_S_N-UleYoFAAIf29XcG
http://www.xjtudll.cn/Exp/245/

http://blog.chinaunix.net/uid-23670869-id-2948890.html

相關文章
相關標籤/搜索