doxygen上手

what

doxygen是一個(gè)自動(dòng)根據(jù)注釋生成文檔的工具闪彼。支持html啼辣、chm、pdf等格式裙戏。

安裝

  • 源碼
    github
  • 編譯安裝
    工程使用cmake組織 乘凸。會(huì)缺少一些依賴,缺啥補(bǔ)啥就行累榜。

生成文檔的步驟

  • 按照doxygen的規(guī)范進(jìn)行代碼注釋
  • 生成一個(gè)配置文件营勤,根據(jù)自己的需要修改參數(shù)
  • 調(diào)用doxygen生成文檔

實(shí)驗(yàn)1:生成doxygen的文檔。

  • 準(zhǔn)備源碼
    doxygen的代碼本身就是按照自己的格式注釋的壹罚,這里不需要操作葛作。
  • 生成配置文件
    -doxygen –g
  • 生成不帶注釋的:doxygen -s –g
  • 配置文件的修改參數(shù)
    參數(shù)都有注釋,可以簡單修改一下類似工程名猖凛、語言這些基本配置赂蠢,也可以不改。
  • 進(jìn)入源碼目錄辨泳,執(zhí)行doxygen your-cfg-filename
    這就會(huì)生成一個(gè)html的文檔虱岂。
    image.png

這樣就會(huì)生成一份doxygen自己的文檔。

doxygen配置主要參數(shù):

  • PROJECT_NAME = “Test”
  • PROJECT_NUMBER = 1.0.0
  • OUTPUT_DIRECTORY = doc/
  • OPTIMIZE_OUTPUT_FOR_C = NO
    c++這里就用NO
  • TYPEDEF_HIDES_STRUCT = YES
    定義的結(jié)構(gòu)體菠红、枚舉第岖、聯(lián)合等數(shù)據(jù)類型,只按照 typedef定義的類型名進(jìn)行文檔化
  • GENERATE_LATEX = NO
    默認(rèn)會(huì)生成一個(gè)html和latex的文檔试溯,有html就夠了蔑滓。
  • RECURSIVE = YES
    是否遞歸調(diào)用
  • GENERATE TREEVIEW = ALL
    這會(huì)在HTML文檔中,添加一個(gè)側(cè)邊欄遇绞,并以樹狀結(jié)構(gòu)顯示包键袱、類、接口等的關(guān)系

注釋規(guī)范

  • 單行注釋
    用“//!”來表示试读,例如://!概要
  • 多行注釋
/*!
xx@#$%~
xx^&*(
*/
  • 各種標(biāo)記
    一些類似param杠纵、return這些標(biāo)記,doxygen會(huì)解釋這些標(biāo)記钩骇”仍澹可以用@鏈接這些標(biāo)記铝量,也可以用\
  • b 加粗
  • param 參數(shù)
  • tparam 模板參數(shù)
  • code和encode用于表示一個(gè)代碼塊
  SomeClass sc("hello");
  string result;
  int ret = sc.Func("world",3,result);
  \endcode
  • note 說明注釋
  • return 返回值
  • todo 待做的
  • deprecated 啟用的
  • 使用@分組
//! @name operator
    //@{
        bool operator==(const SomeClass& other) const { return true;} 
        bool operator!=(const SomeClass& other) const { return true;} 
        bool operator<(const SomeClass& other) const { return true;} 
        bool operator>(const SomeClass& other) const { return true;} 
    //@}

完整的示例:

  • 代碼:
#pragma once

/*! \file document.h */

#include <string>
#include <vector>

using namespace std;

//!概要
/*!
    具體注釋:

    \tparam 模板參數(shù)的注釋
    \see SomeClass::SomeClass

    這就是一個(gè)測(cè)試類。

    \b "\b"表示加粗
    \code 
    SomeClass sc("hello");
    string result;
    int ret = sc.Func("world",3,result);
    \endcode
*/
template<typename Type>
class SomeClass
{
public:
    /*!
        構(gòu)造函數(shù)

        \param str 輸入字符串

        \note 說明
    */
    SomeClass(string const& str){}

    //! 函數(shù)注釋概要
    /*!
        具體解釋
        \li 解釋1
        \li 解釋2
        \li 解釋3

        \param outStr 輸出字符串

        \return int 錯(cuò)誤碼,0表示成功

        \todo 對(duì)各種錯(cuò)誤進(jìn)行整理
    */
    int Func(string const& str,int len, string& outStr)
    {
        return 0;
    }

    //! \deprecated
    int Func()
    {
        return 0;
    }

    //! @name operator
    //@{
        bool operator==(const SomeClass& other) const { return true;} 
        bool operator!=(const SomeClass& other) const { return true;} 
        bool operator<(const SomeClass& other) const { return true;} 
        bool operator>(const SomeClass& other) const { return true;} 
    //@}
public:
    string value_;

private:
    int len_;
    Type type_;
}
  • 生成的文檔如下:


    image.png

    image.png

    image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末银亲,一起剝皮案震驚了整個(gè)濱河市慢叨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌务蝠,老刑警劉巖拍谐,帶你破解...
    沈念sama閱讀 216,470評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異馏段,居然都是意外死亡轩拨,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門院喜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亡蓉,“玉大人,你說我怎么就攤上這事喷舀】潮簦” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵硫麻,是天一觀的道長爸邢。 經(jīng)常有香客問我,道長拿愧,這世上最難降的妖魔是什么杠河? 我笑而不...
    開封第一講書人閱讀 58,176評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮浇辜,結(jié)果婚禮上感猛,老公的妹妹穿的比我還像新娘。我一直安慰自己奢赂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評(píng)論 6 388
  • 文/花漫 我一把揭開白布颈走。 她就那樣靜靜地躺著膳灶,像睡著了一般。 火紅的嫁衣襯著肌膚如雪立由。 梳的紋絲不亂的頭發(fā)上轧钓,一...
    開封第一講書人閱讀 51,155評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音锐膜,去河邊找鬼毕箍。 笑死,一個(gè)胖子當(dāng)著我的面吹牛道盏,可吹牛的內(nèi)容都是我干的而柑。 我是一名探鬼主播文捶,決...
    沈念sama閱讀 40,041評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼媒咳!你這毒婦竟也來了粹排?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤涩澡,失蹤者是張志新(化名)和其女友劉穎顽耳,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妙同,經(jīng)...
    沈念sama閱讀 45,319評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡射富,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了粥帚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胰耗。...
    茶點(diǎn)故事閱讀 39,703評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖茎辐,靈堂內(nèi)的尸體忽然破棺而出宪郊,到底是詐尸還是另有隱情,我是刑警寧澤拖陆,帶...
    沈念sama閱讀 35,417評(píng)論 5 343
  • 正文 年R本政府宣布弛槐,位于F島的核電站,受9級(jí)特大地震影響依啰,放射性物質(zhì)發(fā)生泄漏乎串。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評(píng)論 3 325
  • 文/蒙蒙 一速警、第九天 我趴在偏房一處隱蔽的房頂上張望叹誉。 院中可真熱鬧,春花似錦闷旧、人聲如沸长豁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匠襟。三九已至,卻和暖如春该园,著一層夾襖步出監(jiān)牢的瞬間酸舍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評(píng)論 1 269
  • 我被黑心中介騙來泰國打工里初, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啃勉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,711評(píng)論 2 368
  • 正文 我出身青樓双妨,卻偏偏與公主長得像淮阐,于是被迫代替她去往敵國和親叮阅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 1.如果你對(duì)社會(huì)環(huán)境的信息感知能力下降枝嘶,你原來的生存方式是無法維持的帘饶。 2.現(xiàn)在是一個(gè)體驗(yàn)消費(fèi)的時(shí)代,體驗(yàn)是你去說...
    請(qǐng)叫我四十大爺閱讀 275評(píng)論 0 0
  • 該文件定義了各版本號(hào)常量群扶,在模板可以用直接php方式使用,部分可用模板常量格式使用 ZC_VERSION_MAJO...
    f675b1a02698閱讀 307評(píng)論 0 0
  • 十幾年了竞阐,我的生活就像風(fēng)平浪靜的海一樣缴饭,白天有往來的船只,夜晚有明月和星星骆莹,一切安好颗搂。但這些總是掩蓋不住,海底的世...
    小雨飛揚(yáng)2010閱讀 812評(píng)論 2 1
  • 指針過了夜里十二點(diǎn)幕垦,她點(diǎn)擊保存丢氢,發(fā)送。長舒一口氣先改,拿起手機(jī)疚察,上面有條小蓋發(fā)來的消息:“下班啦!”她笑笑仇奶,然后去茶水...
    穆恰閱讀 1,020評(píng)論 7 11