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


一、引子

用這兩個工具可以自動的遍歷代碼,並且產生代碼文檔,我們先來看看效果,然后放出這兩個工具的下載地址。

 

 

 

二、工具的下載地址

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

graphviz:http://www.graphviz.org/

 

三、使用步驟

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

最后點run就可以了。

 

附上doxygen能識別的一些注釋,這里僅僅是比較常用的,不是全部。為了說明清楚,我把注釋和代碼一起貼上。

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";
    }
}

輸出的測試結果:

 

詳細的步驟圖片下載: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

 


免責聲明!

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



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