Doxygen 的使用簡介

Doxygen 是一個類似 JavaDoc 的文檔生成工具。有了它,C++愛好者就可以爲自己的源代碼很方便地生成美觀實用的文檔了。

爲代碼生成文檔標註基礎

  您可以使用JavaDoc風格,類似於由C風格的註釋塊:
/**
* ... 文本 ...
*/

此外您也可以使用Qt風格,如

/*!
* ... 文本...
*/

以上兩種風格中間的*是可選的,也就是下面這樣寫也是可以的:

/*!
... 文本...
*/

第三種是使用至少兩行C++"//"註釋,如:

///
/// ... 文本...
///

或者

//!
//!...文本...
//!

有的程序員也許喜歡下面這種風格,有比較好的視覺效果:

/////////////////////////////////////////////////
/// ... 文本...
/////////////////////////////////////////////////

  對於簡單的描述信息,可能有幾種情況。一種是在註釋塊的開頭使用/brief命令,該命令一直到段落結束有效,所以詳細描述信息從空一行後開始,如下例:

/*! /brief 簡潔的描述信息 description.
* 又一些簡潔的描述信息。
*
* 詳細描述信息從這裏開始。
*/

  在配置文件中,如果JAVADOC_AUTOBRIEF設爲YES,則Doxygen將使用JavaDoc風格的註釋塊,從簡潔描述信息後的點空格. 開始爲詳細描述信息,例如:

/** 簡潔信息結尾是一個點號. 詳細描述信息從
* 這裏開始
*/

該選項對C++風格的多行註釋也是有效的:

///簡潔信息結尾是一個點號. 詳細描述信息從
///這裏開始

或者:

/// 簡潔描述信息
/** 詳細描述信息*/

或者:

//!簡潔描述信息

//!詳細描述信息從
//!這裏開始

  此例中間空行用來分割簡潔描述信息塊和詳細描述信息塊。可見doxygen的文檔標註使用格式是非常自由的。不過要注意下面格式是不合法的,因爲doxygen只允許一塊詳細描述信息對應一塊簡潔描述信息:

//!簡潔描述信息
//! 詳細描述信息
/*! 注意,又一詳細描述信息!
*/
下例使用Qt風格的文檔標註:
//! A test class. 
/*!
A more elaborate class description.
*/

class Test
{
  public:

    //! An enum.
    /*! More detailed enum description. */
    enum TEnum { 
                 TVal1, /*!< Enum value TVal1. */  
                 TVal2, /*!< Enum value TVal2. */  
                 TVal3  /*!< Enum value TVal3. */  
               } 
         //! Enum pointer.
         /*! Details. */
         *enumPtr, 
         //! Enum variable.
         /*! Details. */
         enumVar;  
    
    //! A constructor.
    /*!
      A more elaborate description of the constructor.
    */
    Test();

    //! A destructor.
    /*!
      A more elaborate description of the destructor.
    */
   ~Test();
    
    //! A normal member taking two arguments and returning an integer value.
    /*!
      /param a an integer argument.
      /param s a constant character pointer.
      /return The test results
      /sa Test(), ~Test(), testMeToo() and publicVar()
    */
    int testMe(int a,const char *s);
       
    //! A pure virtual member.
    /*!
      /sa testMe()
      /param c1 the first argument.
      /param c2 the second argument.
    */
    virtual void testMeToo(char c1,char c2) = 0;
   
    //! A public variable.
    /*!
      Details.
    */
    int publicVar;
       
    //! A function variable.
    /*!
      Details.
    */
    int (*handler)(int a,int b);
};

  Doxygen的文檔標註是不是非常容易?當然還可以有更高級的應用,如標註列表、分組,甚至支持生成公式(Latex)。上面只編譯了最簡單的一些使用方法,更多內容請參考Doxygen的幫助文檔doxygen_manual。

附帶文檔的說明:

  DoxygWizard是基於QT的簡易圖形用戶界面,簡化了Doxygen的使用。您可以在DoxygWizard裏對需要生成的文檔進行設置,可保存爲"Doxyfile",然後調用Doxygen生成文檔。需要注意的是,文件路徑不支持中文,所以儘可能使您的源代碼和文檔目錄均爲英文名。在"Doxyfile"文件同一目錄請放置一個"mylogo"純文本文件,內容可以是一些版權標識信息,這些信息將顯示在生成文檔頁面的最下邊,如果沒有此"mylogo"文件,將生成默認的版權標識信息。
  樣式表文件Orignl_doxygen.css、green_doxygen.css、yellow_doxygen.css、Blue_doxygen.css,改文件名爲doxygen.css後,拷貝到生成html文檔的目錄內可以改變文檔顯示的樣式。
  OUT PUT_LANGUAGE 可選項爲Englisth(英文文檔), Chinese(中文文檔), En_Can_Cn(支持中文註釋的英文文檔)

相關網址:

http://www.doxygen.org/download.html
您還需要下載graphviz dot畫圖:
http://www.research.att.com/sw/tools/graphviz/
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章