程序員的很多文檔,特別是有代碼的文檔,絕大部分都是由一款文檔生成工具【Doxygen】生成。
什么是Doxygen?
Doxygen 是一個程序的文件產(chǎn)生工具,可將程序中的特定批注轉(zhuǎn)換成為說明文件。通常我們在寫程序時,或多或少都會寫上批注,但是對于其它人而言,要直接探索程序里的批注,與打撈鐵達尼號同樣的辛苦。 大部分有用的批注都是屬于針對函式,類別等等的說明。所以,如果能依據(jù)程序本身的結(jié)構(gòu),將批注經(jīng)過處理重新整理成為一個純粹的參考手冊,對于后面利用你的程序代碼的人而言將會減少許多的負擔。不過,反過來說,整理文件的工作對于你來說,就是沉重的負擔。簡而言之,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結(jié)尾,例如:360d表示一圈、90d表示直角
li 輸入也可以是數(shù)值,例如:輸入3.14159大約表示180度
param a 用弧度制或角度制表示都行,字符串必須用'?'表示結(jié)束
param[out] res 是輸出參數(shù),用于保存sin運算的結(jié)果
eturn 錯誤碼,0表示成功,其它表示失敗
odo 在xxx的情況下存在BUG,預計下一版本修復
*/
intsin(char*a,double*res);
Doxygen生成的HTML會放到
out
目錄下,生成的HTML如下圖所示。
HTML界面
3、保存配置 上面我們配置了一些選項,也成功生成了HTML文檔。我們希望下次代碼改動后能夠繼續(xù)沿用上次配置,那么我們可以把這些配置保存成Doxyfile文件,如下圖所示。
保存Doxyfile配置文件
4、命令行運行Doxygen 有了配置文件后我們完全可以通過命令行來生成API文檔,假設配置文件名為Doxyfile,那么我們只需要執(zhí)行doxygen /path/to/Doxyfile即可生成API文檔。 通過命令行生成文檔有許多好處,其中最主要的好處就是:能夠集成到持續(xù)集成之類的自動化系統(tǒng)中。為代碼編寫注釋
1.什么樣的注釋會被Doxygen識別?
Doxygen能識別這幾種風格的注釋:
/**
* ... text ...
*/
/*!
* ... text ...
*/
///
/// ... text ...
///
//!
//!... text ...
//!
文件的開頭必須有文件注釋,否則該文件不會被識別:
/*! file math.h */
2.注釋怎么寫 這里建議參考官網(wǎng)例子。
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等等。
2.Doxygen官方不支持的語言 以Lua語言為例,它的代碼是長這樣的:
可以看到Lua的語法既不像C也不像Python。 審核編輯 :李倩-- file lmath.h
--[[
用于求一個角度的sin值,輸入是字符串以便同時支持弧度制和角度制表示
li 弧度制用pi表示,例如:2pi表示一圈、0.5pi表示直角
li 角度制用d結(jié)尾,例如:360d表示一圈、90d表示直角
li 輸入也可以是數(shù)值,例如:輸入3.14159大約表示180度
param a 字符串類型,表示角度,用弧度制或角度制表示都行
eturn 返回sin運算的結(jié)果
odo 在xxx的情況下存在BUG,預計下一版本修復
--]]
function sin(a)
return 1.123
end
-
開源
+關注
關注
3文章
3651瀏覽量
43685 -
C++
+關注
關注
22文章
2118瀏覽量
75005
原文標題:一款常用文檔生成工具:Doxygen
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
超125款游戲和應用支持DLSS 4多幀生成
用對軟件,DeepSeek + Kimi,PPT一鍵生成秘籍!

生成式AI工具好用嗎
國內(nèi)生成式AI備案數(shù)量突破300款
Google兩款先進生成式AI模型登陸Vertex AI平臺
在算力魔方上運行Genesis:一款顛覆性開源生成式物理引擎!

上海新增14款生成式AI服務備案
生成式AI工具作用
AIGC生成內(nèi)容的優(yōu)勢與挑戰(zhàn)
如果設計一款桌面款的機器玩具,最吸引人的外觀與功能要有哪些?
Adobe將推出一款人工智能視頻生產(chǎn)工具
AD軟件如何生成PCB網(wǎng)表
關于Makefile自動生成-autotools的使用

評論