0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一款文檔生成工具:Doxygen生成

strongerHuang ? 來源:簡書 ? 作者:strongerHuang ? 2022-04-27 09:15 ? 次閱讀

程序員的很多文檔,特別是有代碼的文檔,絕大部分都是由一款文檔生成工具【Doxygen生成。

什么是Doxygen?

Doxygen 是一個(gè)程序的文件產(chǎn)生工具,可將程序中的特定批注轉(zhuǎn)換成為說明文件。通常我們?cè)趯懗绦驎r(shí),或多或少都會(huì)寫上批注,但是對(duì)于其它人而言,要直接探索程序里的批注,與打撈鐵達(dá)尼號(hào)同樣的辛苦。 大部分有用的批注都是屬于針對(duì)函式,類別等等的說明。所以,如果能依據(jù)程序本身的結(jié)構(gòu),將批注經(jīng)過處理重新整理成為一個(gè)純粹的參考手冊(cè),對(duì)于后面利用你的程序代碼的人而言將會(huì)減少許多的負(fù)擔(dān)。不過,反過來說,整理文件的工作對(duì)于你來說,就是沉重的負(fù)擔(dān)。
簡而言之,Doxgen就是大名鼎鼎的文檔生成工具,而且是免費(fèi)開源的,它使用非常方便,能提取C++,Java,Objective-C,Python,IDL,PHP,C#等語言的注釋,從而生成文檔。 Doxygen 的使用可分為兩大部分。首先是特定格式的批注撰寫,第二便是利用Doxygen的工具來生成文檔。

生成文檔使用教程

1、安裝

Linux下可以通過apt install doxygen安裝命令行工具,然后用apt install doxygen-gui安裝圖形界面。 對(duì)Linux用戶來說,命令行工具可以通過doxygen命令運(yùn)行,而圖形界面可以通過doxywizard命令運(yùn)行。 Windows 用戶的下載地址:http://www.doxygen.nl/download.html 2、基本使用 圖形工具的基本使用如下圖所示,有非常多的配置選項(xiàng),這里我們只填入必要的配置,其它配置都用默認(rèn)值。

42e1a25e-c5c2-11ec-bce3-dac502259ad0.jpg

doxywizard使用步驟

42ef3644-c5c2-11ec-bce3-dac502259ad0.jpg

doxywizard使用步驟

工作目錄如下:

.
├──out
└── src
└── math.h

其中math.h代碼如下:

/*! file math.h */

/*!
用于求一個(gè)角度的sin值,輸入是字符串以便同時(shí)支持弧度制和角度制表示
li 弧度制用pi表示,例如:2pi表示一圈、0.5pi表示直角
li 角度制用d結(jié)尾,例如:360d表示一圈、90d表示直角
li 輸入也可以是數(shù)值,例如:輸入3.14159大約表示180度

param a 用弧度制或角度制表示都行,字符串必須用'?'表示結(jié)束
param[out] res 是輸出參數(shù),用于保存sin運(yùn)算的結(jié)果


eturn 錯(cuò)誤碼,0表示成功,其它表示失敗

	odo 在xxx的情況下存在BUG,預(yù)計(jì)下一版本修復(fù)
*/
intsin(char*a,double*res);

Doxygen生成的HTML會(huì)放到out目錄下,生成的HTML如下圖所示。

42fd5422-c5c2-11ec-bce3-dac502259ad0.jpg

HTML界面

3、保存配置 上面我們配置了一些選項(xiàng),也成功生成了HTML文檔。我們希望下次代碼改動(dòng)后能夠繼續(xù)沿用上次配置,那么我們可以把這些配置保存成Doxyfile文件,如下圖所示。

430ad3c2-c5c2-11ec-bce3-dac502259ad0.jpg

保存Doxyfile配置文件

4、命令行運(yùn)行Doxygen 有了配置文件后我們完全可以通過命令行來生成API文檔,假設(shè)配置文件名為Doxyfile,那么我們只需要執(zhí)行doxygen /path/to/Doxyfile即可生成API文檔。 通過命令行生成文檔有許多好處,其中最主要的好處就是:能夠集成到持續(xù)集成之類的自動(dòng)化系統(tǒng)中。

為代碼編寫注釋

1.什么樣的注釋會(huì)被Doxygen識(shí)別?

Doxygen能識(shí)別這幾種風(fēng)格的注釋:

/**
* ... text ...
*/

/*!
* ... text ...
*/

///
/// ... text ...
///

//!
//!... text ...
//!

文件的開頭必須有文件注釋,否則該文件不會(huì)被識(shí)別:

/*! file math.h */

2.注釋怎么寫 這里建議參考官網(wǎng)例子。
https://www.doxygen.nl/manual/doxygen_usage.html

為其它編程語言生成注釋

Doxygen主要支持C語言,其它語法跟C差不多的語言(如:C++/C#/PHP/Java)也能夠支持,我們稱這類語言為「C語系語言」。而哪些跟C語法差異較大的語言叫做「非C語系語言」。 對(duì)于大多非C語系語言,Doxygen都是支持的,Doxygen原生支持這些語言:IDL、Java、Javascript、C#、C、C++、D、PHP、Objective-C、Python、Fortran、VHDL。 萬一項(xiàng)目需要的語言(例如:Lua)Doxygen官方并不支持,那么只能自行編寫「第三方語言擴(kuò)展」來支持了。 1.Doxygen官方支持的語言見下圖,文件名符合FILE_PATTERNS都會(huì)被處理。其中包括了.c、.h、.py等等。

4318b8ac-c5c2-11ec-bce3-dac502259ad0.jpg

如果我們的擴(kuò)展名并不在FILE_PATTERNS內(nèi),那么可以加上去。例如我們項(xiàng)目下的所有.ccc文件,其實(shí)是C語言代碼(這很奇葩,舉個(gè)例子而已)。那我們可以編輯Doxyfile配置文件滿足這一需求,需要2個(gè)步驟。 (1) 在FILE_PATTERNS中添加*.ccc,如下圖:

4327f9a2-c5c2-11ec-bce3-dac502259ad0.jpg

(2) 在EXTENSION_MAPPING中添加映射規(guī)則ccc=C,如下圖,語法是ext=language,其中l(wèi)anguage可以取的值有:IDL、Java、Javascript、C#、C、C++、D、PHP、Objective-C、Python、Fortran、VHDL。

433668c0-c5c2-11ec-bce3-dac502259ad0.jpg


2.Doxygen官方不支持的語言 以Lua語言為例,它的代碼是長這樣的:
-- file lmath.h

--[[    用于求一個(gè)角度的sin值,輸入是字符串以便同時(shí)支持弧度制和角度制表示    

li 弧度制用pi表示,例如:2pi表示一圈、0.5pi表示直角    

li 角度制用d結(jié)尾,例如:360d表示一圈、90d表示直角    

li 輸入也可以是數(shù)值,例如:輸入3.14159大約表示180度

    param a 字符串類型,表示角度,用弧度制或角度制表示都行
    
eturn 返回sin運(yùn)算的結(jié)果

    	odo 在xxx的情況下存在BUG,預(yù)計(jì)下一版本修復(fù)--]]function sin(a)    return 1.123end
可以看到Lua的語法既不像C也不像Python。 審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3125

    瀏覽量

    42068
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2085

    瀏覽量

    73301

原文標(biāo)題:一款常用文檔生成工具:Doxygen

文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Adobe將推出一款人工智能視頻生產(chǎn)工具

    Adobe即將在今年晚些時(shí)候震撼發(fā)布其最新力作——Adobe Firefly Video Model,一款專為創(chuàng)意專業(yè)人士打造的生成式視頻創(chuàng)作與編輯神器。作為Firefly圖像生成系列的新成員,該
    的頭像 發(fā)表于 09-12 16:37 ?258次閱讀

    AD軟件如何生成PCB網(wǎng)表

    生成PCB網(wǎng)表是電路設(shè)計(jì)過程中的個(gè)重要步驟,它將電路原理圖轉(zhuǎn)換為PCB布局所需的連接信息。AD(Altium Designer)軟件是一款流行的電子設(shè)計(jì)自動(dòng)化(EDA)工具,它提供了
    的頭像 發(fā)表于 09-02 16:17 ?292次閱讀

    關(guān)于Makefile自動(dòng)生成-autotools的使用

    的Makefile并非日常任務(wù),但遇見需要構(gòu)建大型軟件項(xiàng)目時(shí),利用工具自動(dòng)生成Makefile就顯得尤為關(guān)鍵。接下來,我們將重點(diǎn)介紹一款自動(dòng)化構(gòu)建工具——Autoto
    的頭像 發(fā)表于 07-25 15:50 ?1350次閱讀
    關(guān)于Makefile自動(dòng)<b class='flag-5'>生成</b>-autotools的使用

    NVIDIA生成式AI研究實(shí)現(xiàn)在1秒內(nèi)生成3D形狀

    NVIDIA 研究人員使 LATTE3D (一款最新文本轉(zhuǎn) 3D 生成式 AI 模型)實(shí)現(xiàn)雙倍加速。
    的頭像 發(fā)表于 03-27 10:28 ?364次閱讀
    NVIDIA<b class='flag-5'>生成</b>式AI研究實(shí)現(xiàn)在1秒內(nèi)<b class='flag-5'>生成</b>3D形狀

    【鴻蒙】NAPI 框架生成工具實(shí)現(xiàn)流程

    NAPI 框架生成工具 可以根據(jù)用戶指定路徑下的 ts(typescript)接口文件生成 NAPI 框架代碼、業(yè)務(wù)代碼框架、GN 文件等。在開發(fā) JS 應(yīng)用與 NAPI 間接口時(shí)
    的頭像 發(fā)表于 02-28 17:00 ?545次閱讀
    【鴻蒙】NAPI 框架<b class='flag-5'>生成</b><b class='flag-5'>工具</b>實(shí)現(xiàn)流程

    OpenAI 在 AI 生成視頻領(lǐng)域扔出枚“王炸”,視頻生成模型“Sora”

    ABSTRACT摘要2月16日凌晨,也就是中國大年初七,OpenAI在AI生成視頻領(lǐng)域扔出枚“王炸”,宣布推出全新的生成式人工智能模型“Sora”。這家舊金山公司周四推出的該工具使用
    的頭像 發(fā)表于 02-22 08:25 ?291次閱讀
    OpenAI 在 AI <b class='flag-5'>生成</b>視頻領(lǐng)域扔出<b class='flag-5'>一</b>枚“王炸”,視頻<b class='flag-5'>生成</b>模型“Sora”

    沃爾瑪推出生成式人工智能工具

    在拉斯維加斯舉辦的2024年消費(fèi)電子展上,全球最大的零售商沃爾瑪發(fā)布了一款最新的AI技術(shù)產(chǎn)品。該公司推出了生成式人工智能工具,這
    的頭像 發(fā)表于 01-10 14:58 ?1341次閱讀

    labview生成exe后報(bào)表不能用

    LabVIEW是一款流程化的編程語言和開發(fā)環(huán)境,廣泛應(yīng)用于工業(yè)自動(dòng)化、實(shí)驗(yàn)室研究、儀器儀表等領(lǐng)域。通過LabVIEW開發(fā)的程序可以生成可執(zhí)行文件(.exe),方便用戶在沒有安裝LabVIEW開發(fā)環(huán)境
    的頭像 發(fā)表于 01-04 15:59 ?1617次閱讀

    labview的opc生成配置文件

    LabVIEW 是一款非常強(qiáng)大的圖形化編程軟件,它在工業(yè)自動(dòng)化領(lǐng)域應(yīng)用廣泛。而 OPC(OLE for Process Control)是種用于工業(yè)自動(dòng)化系統(tǒng)的標(biāo)準(zhǔn)通信協(xié)議,它能夠?qū)崿F(xiàn)不同設(shè)備之間
    的頭像 發(fā)表于 12-26 17:57 ?1404次閱讀

    labview生成專業(yè)的測(cè)試報(bào)表工具

    Labview軟件免費(fèi)的報(bào)表生成工具
    發(fā)表于 12-21 09:57 ?10次下載

    能夠生成java文檔注釋的命令

    生成Java文檔注釋的命令是通過使用Java的自帶工具Javadoc來實(shí)現(xiàn)的。Javadoc是個(gè)能夠從源代碼中提取注釋并生成文檔
    的頭像 發(fā)表于 11-29 14:12 ?637次閱讀

    用MCUXpresso調(diào)試其它工具生成的項(xiàng)目

    用MCUXpresso調(diào)試其它工具生成的項(xiàng)目
    的頭像 發(fā)表于 10-31 16:42 ?406次閱讀
    用MCUXpresso調(diào)試其它<b class='flag-5'>工具</b>鏈<b class='flag-5'>生成</b>的項(xiàng)目

    如何用Python自動(dòng)套用模板批量生成PDF文檔

    日常辦公中,經(jīng)常會(huì)使用PDF文檔,難免需要對(duì)PDF文檔進(jìn)行編輯,有時(shí)候PDF文檔中的大部分內(nèi)容都是樣的,只是發(fā)送對(duì)象不同。 這種模板套用的場景下,使用Python進(jìn)行自動(dòng)化就尤為方便
    的頭像 發(fā)表于 10-31 10:56 ?1243次閱讀
    如何用Python自動(dòng)套用模板批量<b class='flag-5'>生成</b>PDF<b class='flag-5'>文檔</b>

    如何使用Keil生成匯編文檔

    如何使用Keil IDE環(huán)境中生成匯編文檔使用Keil IDE環(huán)境中生成匯編文檔
    發(fā)表于 10-19 07:31

    如何生成mybatisplus

    我在詳細(xì)的講解下官方的文檔。 2、添加依賴 MyBatis-Plus 從 3.0.3 之后移除了代碼生成器與模板引擎的默認(rèn)依賴,需要手動(dòng)添加相關(guān)依賴。 ①、添加代碼生成器依
    的頭像 發(fā)表于 09-25 14:23 ?642次閱讀
    如何<b class='flag-5'>一</b>鍵<b class='flag-5'>生成</b>mybatisplus