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

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

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

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

strongerHuang ? 來(lái)源:簡(jiǎn)書(shū) ? 作者:strongerHuang ? 2022-04-27 09:15 ? 次閱讀

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

什么是Doxygen?

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

生成文檔使用教程

1、安裝

Linux下可以通過(guò)apt install doxygen安裝命令行工具,然后用apt install doxygen-gui安裝圖形界面。 對(duì)Linux用戶來(lái)說(shuō),命令行工具可以通過(guò)doxygen命令運(yùn)行,而圖形界面可以通過(guò)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 有了配置文件后我們完全可以通過(guò)命令行來(lái)生成API文檔,假設(shè)配置文件名為Doxyfile,那么我們只需要執(zhí)行doxygen /path/to/Doxyfile即可生成API文檔。 通過(guò)命令行生成文檔有許多好處,其中最主要的好處就是:能夠集成到持續(xù)集成之類的自動(dòng)化系統(tǒng)中。

為代碼編寫(xiě)注釋

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

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

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

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

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

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

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

/*! file math.h */

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

為其它編程語(yǔ)言生成注釋

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

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

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

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

(2) 在EXTENSION_MAPPING中添加映射規(guī)則ccc=C,如下圖,語(yǔ)法是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官方不支持的語(yǔ)言 以Lua語(yǔ)言為例,它的代碼是長(zhǎng)這樣的:
-- 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的語(yǔ)法既不像C也不像Python。 審核編輯 :李倩

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

    關(guān)注

    3

    文章

    3363

    瀏覽量

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

    關(guān)注

    22

    文章

    2110

    瀏覽量

    73688

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Google兩先進(jìn)生成式AI模型登陸Vertex AI平臺(tái)

    新的 AI 模型,包括最先進(jìn)的視頻生成模型Veo以及最高品質(zhì)的圖像生成模型Imagen 3。近日,我們?cè)?Google Cloud 上進(jìn)步推動(dòng)這勢(shì)頭,客戶可以在Vertex AI平
    的頭像 發(fā)表于 12-30 09:56 ?77次閱讀

    在算力魔方上運(yùn)行Genesis:一款顛覆性開(kāi)源生成式物理引擎!

    作者:算力魔方創(chuàng)始人 劉力 ,Genesis簡(jiǎn)介 ? Genesis是一款由19個(gè)頂尖科研機(jī)構(gòu)聯(lián)手打造的,用于通用機(jī)器人、具身智能和物理 AI 應(yīng)用的開(kāi)源生成式物理引擎。它可以生成
    的頭像 發(fā)表于 12-23 18:10 ?119次閱讀
    在算力魔方上運(yùn)行Genesis:<b class='flag-5'>一款</b>顛覆性開(kāi)源<b class='flag-5'>生成</b>式物理引擎!

    上海新增14生成式AI服務(wù)備案

    近日,據(jù)網(wǎng)信上海最新消息,截至12月2日,上海市在生成式人工智能服務(wù)領(lǐng)域取得了新的進(jìn)展,新增了14已完成備案的服務(wù)。這消息標(biāo)志著上海市在推動(dòng)生成式人工智能服務(wù)規(guī)范化、標(biāo)準(zhǔn)化方面取得
    的頭像 發(fā)表于 12-03 10:58 ?310次閱讀

    生成式AI工具作用

    生成式AI工具是指那些能夠自動(dòng)生成文本、圖像、音頻、視頻等多種類型數(shù)據(jù)的人工智能技術(shù)。在此,petacloud.ai小編為您整理生成式AI工具
    的頭像 發(fā)表于 10-28 11:19 ?248次閱讀

    如果設(shè)計(jì)一款桌面的機(jī)器玩具,最吸引人的外觀與功能要有哪些?

    初步設(shè)想制作如下其中一款,有感興趣的朋友可以幫提提意見(jiàn)。 A一款圓敦敦的音響狀的“個(gè)人日程助手”,具備番茄鬧鐘、音樂(lè)播放、減壓交互、語(yǔ)言對(duì)話、工作日?qǐng)?bào)生成。 B一款迷你瓦利機(jī)器人,有
    發(fā)表于 10-19 18:25

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

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

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

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

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

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

    阿里云視頻生成技術(shù)創(chuàng)新!視頻生成使用了哪些AI技術(shù)和算法

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)日前,阿里云宣布通義實(shí)驗(yàn)室研發(fā)的視頻生成模型EMO正式上線通義App,免費(fèi)對(duì)所有人開(kāi)放。借助這功能,用戶可以在歌曲、熱梗、表情包中任選一款模板,然后通過(guò)上傳
    的頭像 發(fā)表于 05-08 00:07 ?3385次閱讀

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

    NVIDIA 研究人員使 LATTE3D (一款最新文本轉(zhuǎn) 3D 生成式 AI 模型)實(shí)現(xiàn)雙倍加速。
    的頭像 發(fā)表于 03-27 10:28 ?510次閱讀
    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 文件等。在開(kāi)發(fā) JS 應(yīng)用與 NAPI 間接口時(shí)
    的頭像 發(fā)表于 02-28 17:00 ?699次閱讀
    【鴻蒙】NAPI 框架<b class='flag-5'>生成</b><b class='flag-5'>工具</b>實(shí)現(xiàn)流程

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

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

    OpenAI發(fā)布Sora模型,瞬間生成高清大片

    近日,人工智能領(lǐng)域的領(lǐng)軍企業(yè)OpenAI發(fā)布了一款名為“Sora”的視頻生成AI模型,再次展示了其在AI技術(shù)領(lǐng)域的創(chuàng)新實(shí)力。Sora以其出色的視頻生成能力,瞬間成為業(yè)界的焦點(diǎn)。
    的頭像 發(fā)表于 02-20 13:33 ?828次閱讀

    谷歌推出圖像生成工具ImageFX,提升圖像質(zhì)量

    作為實(shí)驗(yàn)室的新興工具,ImageFX 允許用戶借助簡(jiǎn)潔的文字指令來(lái)創(chuàng)作圖像。經(jīng)過(guò)前期試驗(yàn),該團(tuán)隊(duì)認(rèn)為對(duì)生成型人工智能工具來(lái)說(shuō)最關(guān)鍵的是如何啟發(fā)并鼓勵(lì)用戶挖掘和實(shí)踐創(chuàng)意想法。
    的頭像 發(fā)表于 02-02 14:18 ?686次閱讀

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

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