程序員的很多文檔,特別是有代碼的文檔,絕大部分都是由一款文檔生成工具【Doxygen】生成。
什么是Doxygen?
Doxygen 是一個程序的文件產生工具,可將程序中的特定批注轉換成為說明文件。通常我們在寫程序時,或多或少都會寫上批注,但是對于其它人而言,要直接探索程序里的批注,與打撈鐵達尼號同樣的辛苦。 大部分有用的批注都是屬于針對函式,類別等等的說明。所以,如果能依據程序本身的結構,將批注經過處理重新整理成為一個純粹的參考手冊,對于后面利用你的程序代碼的人而言將會減少許多的負擔。不過,反過來說,整理文件的工作對于你來說,就是沉重的負擔。簡而言之,Doxgen就是大名鼎鼎的文檔生成工具,而且是免費開源的,它使用非常方便,能提取C++,Java,Objective-C,Python,IDL,PHP,C#等語言的注釋,從而生成文檔。 Doxygen 的使用可分為兩大部分。首先是特定格式的批注撰寫,第二便是利用Doxygen的工具來生成文檔。
生成文檔使用教程
1、安裝
在Linux下可以通過apt install doxygen安裝命令行工具,然后用apt install doxygen-gui安裝圖形界面。 對Linux用戶來說,命令行工具可以通過doxygen命令運行,而圖形界面可以通過doxywizard命令運行。 Windows 用戶的下載地址:http://www.doxygen.nl/download.html 2、基本使用 圖形工具的基本使用如下圖所示,有非常多的配置選項,這里我們只填入必要的配置,其它配置都用默認值。
doxywizard使用步驟
doxywizard使用步驟
工作目錄如下:
.
├──out
└── src
└── math.h
其中math.h
代碼如下:
/*! file math.h */
/*!
用于求一個角度的sin值,輸入是字符串以便同時支持弧度制和角度制表示
li 弧度制用pi表示,例如:2pi表示一圈、0.5pi表示直角
li 角度制用d結尾,例如:360d表示一圈、90d表示直角
li 輸入也可以是數值,例如:輸入3.14159大約表示180度
param a 用弧度制或角度制表示都行,字符串必須用'?'表示結束
param[out] res 是輸出參數,用于保存sin運算的結果
eturn 錯誤碼,0表示成功,其它表示失敗
odo 在xxx的情況下存在BUG,預計下一版本修復
*/
intsin(char*a,double*res);
Doxygen生成的HTML會放到
out
目錄下,生成的HTML如下圖所示。
HTML界面
3、保存配置 上面我們配置了一些選項,也成功生成了HTML文檔。我們希望下次代碼改動后能夠繼續沿用上次配置,那么我們可以把這些配置保存成Doxyfile文件,如下圖所示。
保存Doxyfile配置文件
4、命令行運行Doxygen 有了配置文件后我們完全可以通過命令行來生成API文檔,假設配置文件名為Doxyfile,那么我們只需要執行doxygen /path/to/Doxyfile即可生成API文檔。 通過命令行生成文檔有許多好處,其中最主要的好處就是:能夠集成到持續集成之類的自動化系統中。為代碼編寫注釋
1.什么樣的注釋會被Doxygen識別?
Doxygen能識別這幾種風格的注釋:
/**
* ... text ...
*/
/*!
* ... text ...
*/
///
/// ... text ...
///
//!
//!... text ...
//!
文件的開頭必須有文件注釋,否則該文件不會被識別:
/*! file math.h */
2.注釋怎么寫 這里建議參考官網例子。
https://www.doxygen.nl/manual/doxygen_usage.html
為其它編程語言生成注釋
Doxygen主要支持C語言,其它語法跟C差不多的語言(如:C++/C#/PHP/Java)也能夠支持,我們稱這類語言為「C語系語言」。而哪些跟C語法差異較大的語言叫做「非C語系語言」。 對于大多非C語系語言,Doxygen都是支持的,Doxygen原生支持這些語言:IDL、Java、Javascript、C#、C、C++、D、PHP、Objective-C、Python、Fortran、VHDL。 萬一項目需要的語言(例如:Lua)Doxygen官方并不支持,那么只能自行編寫「第三方語言擴展」來支持了。 1.Doxygen官方支持的語言見下圖,文件名符合FILE_PATTERNS都會被處理。其中包括了.c、.h、.py等等。如果我們的擴展名并不在FILE_PATTERNS內,那么可以加上去。例如我們項目下的所有.ccc文件,其實是C語言代碼(這很奇葩,舉個例子而已)。那我們可以編輯Doxyfile配置文件滿足這一需求,需要2個步驟。 (1) 在FILE_PATTERNS中添加*.ccc,如下圖:
(2) 在EXTENSION_MAPPING中添加映射規則ccc=C,如下圖,語法是ext=language,其中language可以取的值有:IDL、Java、Javascript、C#、C、C++、D、PHP、Objective-C、Python、Fortran、VHDL。
2.Doxygen官方不支持的語言 以Lua語言為例,它的代碼是長這樣的:
可以看到Lua的語法既不像C也不像Python。 審核編輯 :李倩-- file lmath.h
--[[
用于求一個角度的sin值,輸入是字符串以便同時支持弧度制和角度制表示
li 弧度制用pi表示,例如:2pi表示一圈、0.5pi表示直角
li 角度制用d結尾,例如:360d表示一圈、90d表示直角
li 輸入也可以是數值,例如:輸入3.14159大約表示180度
param a 字符串類型,表示角度,用弧度制或角度制表示都行
eturn 返回sin運算的結果
odo 在xxx的情況下存在BUG,預計下一版本修復
--]]
function sin(a)
return 1.123
end
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
開源
+關注
關注
3文章
3349瀏覽量
42500 -
C++
+關注
關注
22文章
2108瀏覽量
73651
原文標題:一款常用文檔生成工具:Doxygen
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
在算力魔方上運行Genesis:一款顛覆性開源生成式物理引擎!
作者:算力魔方創始人 劉力 一,Genesis簡介 ? Genesis是一款由19個頂尖科研機構聯手打造的,用于通用機器人、具身智能和物理 AI 應用的開源生成式物理引擎。它可以生成整
上海新增14款生成式AI服務備案
近日,據網信上海最新消息,截至12月2日,上海市在生成式人工智能服務領域取得了新的進展,新增了14款已完成備案的服務。這一消息標志著上海市在推動生成式人工智能服務規范化、標準化方面取得
生成式AI工具作用
生成式AI工具是指那些能夠自動生成文本、圖像、音頻、視頻等多種類型數據的人工智能技術。在此,petacloud.ai小編為您整理生成式AI工具
如果設計一款桌面款的機器玩具,最吸引人的外觀與功能要有哪些?
初步設想制作如下其中一款,有感興趣的朋友可以幫提提意見。
A一款圓敦敦的音響狀的“個人日程助手”,具備番茄鬧鐘、音樂播放、減壓交互、語言對話、工作日報生成。
B一款迷你瓦利機器人,有
發表于 10-19 18:25
Adobe將推出一款人工智能視頻生產工具
Adobe即將在今年晚些時候震撼發布其最新力作——Adobe Firefly Video Model,一款專為創意專業人士打造的生成式視頻創作與編輯神器。作為Firefly圖像生成系列的新成員,該
AD軟件如何生成PCB網表
生成PCB網表是電路設計過程中的一個重要步驟,它將電路原理圖轉換為PCB布局所需的連接信息。AD(Altium Designer)軟件是一款流行的電子設計自動化(EDA)工具,它提供了
關于Makefile自動生成-autotools的使用
的Makefile并非日常任務,但遇見需要構建大型軟件項目時,利用工具自動生成Makefile就顯得尤為關鍵。接下來,我們將重點介紹一款自動化構建工具——Autoto
阿里云視頻生成技術創新!視頻生成使用了哪些AI技術和算法
電子發燒友網報道(文/李彎彎)日前,阿里云宣布通義實驗室研發的視頻生成模型EMO正式上線通義App,免費對所有人開放。借助這一功能,用戶可以在歌曲、熱梗、表情包中任選一款模板,然后通過上傳一
【鴻蒙】NAPI 框架生成工具實現流程
NAPI 框架生成工具 可以根據用戶指定路徑下的 ts(typescript)接口文件一鍵生成 NAPI 框架代碼、業務代碼框架、GN 文件等。在開發 JS 應用與 NAPI 間接口時
OpenAI 在 AI 生成視頻領域扔出一枚“王炸”,視頻生成模型“Sora”
ABSTRACT摘要2月16日凌晨,也就是中國大年初七,OpenAI在AI生成視頻領域扔出一枚“王炸”,宣布推出全新的生成式人工智能模型“Sora”。這家舊金山公司周四推出的該工具使用
OpenAI發布Sora模型,瞬間生成高清大片
近日,人工智能領域的領軍企業OpenAI發布了一款名為“Sora”的視頻生成AI模型,再次展示了其在AI技術領域的創新實力。Sora以其出色的視頻生成能力,瞬間成為業界的焦點。
谷歌推出圖像生成新工具ImageFX,提升圖像質量
作為實驗室的新興工具,ImageFX 允許用戶借助簡潔的文字指令來創作圖像。經過前期試驗,該團隊認為對生成型人工智能工具來說最關鍵的是如何啟發并鼓勵用戶挖掘和實踐創意想法。
沃爾瑪推出生成式人工智能工具
在拉斯維加斯舉辦的2024年消費電子展上,全球最大的零售商沃爾瑪發布了一款最新的AI技術產品。該公司推出了一種生成式人工智能工具,這一
labview生成exe后報表不能用
LabVIEW是一款流程化的編程語言和開發環境,廣泛應用于工業自動化、實驗室研究、儀器儀表等領域。通過LabVIEW開發的程序可以生成可執行文件(.exe),方便用戶在沒有安裝LabVIEW開發環境
評論