程序員的很多文檔,特別是有代碼的文檔,絕大部分都是由一款文檔生成工具【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等等。



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.123end
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
開源
+關注
關注
3文章
4207瀏覽量
46134 -
C++
+關注
關注
22文章
2124瀏覽量
77112
原文標題:一款常用文檔生成工具:Doxygen
文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
如何選擇適合的智駕仿真工具進行場景生成和測試?
工具的性能與特點,以幫助開發者優化自動駕駛系統的測試效率與安全性。 在選擇適合的智駕仿真工具進行場景生成和測試時,開發者需要對工具的多項特性進行全面理解和評估。 首先,高精度場景重建是
不只有AI協作編程(Vibe Coding):生成式系統級芯片(GenSoC)將如何把生成式設計推向硬件層面
但是否能將這種生成式的、目標驅動的方法從軟件層向下延伸呢?這一理念是否可以直接應用于硬件本身呢?通過GenSoC,開發者可用自然語言或高級模型描述系統行為,XMOS的工具鏈將自動生成確
英飛凌IPOSIM平臺加入基于SPICE的模型生成工具,助力提升系統級仿真精度
與熱特性。目前,該平臺已集成一款基于SPICE(電路仿真程序)的模型生成工具,可將外部電路和柵極驅動器選型納入系統級仿真。該工具通過充分考慮器件的非線性半導體物理特
如何使用 PinConfigure 工具生成 GPIO 代碼文件和 OrCAD/Protel IC 組件?
如何使用 PinConfigure 工具生成 GPIO 代碼文件和 OrCAD/Protel IC 組件?
發表于 08-27 06:48
HarmonyOS AI輔助編程工具(CodeGenie)頁面生成
添加。
針對已有UI布局文件(XML)的應用,當前提供UI Generator能力,可以快速生成對應的HarmonyOS UI代碼。
以上材料主要參考引用HarmonyOS官方文檔。
發表于 08-13 10:38
生成式 AI 重塑自動駕駛仿真:4D 場景生成技術的突破與實踐
生成式AI驅動的4D場景技術正解決傳統方法效率低、覆蓋不足等痛點,如何通過NeRF、3D高斯潑濺等技術實現高保真動態建模?高效生成極端天氣等長尾場景?本文為您系統梳理AI驅動的4D場景生成體系及其在自動駕駛仿真中的實踐價值。
HarmonyOS AI輔助編程工具(CodeGenie)UI生成
Project From... 打開UI Generator工具,首次使用需要閱讀并確認用戶協議,確認后可繼續使用。
輸入待配置項路徑,點擊Next進入下一步。
待配置項
說明
Installation
發表于 07-10 11:51
生成式AI如何重塑設計思維與品牌創新?從工具到認知革命的躍遷
當MidJourney生成的視覺方案出現在國際設計獎項的決賽名單,當Adobe Firefly成為設計師的標配工具,一個問題正從行業邊緣走向中心:生成式人工智能(GAI)究竟在解構還是
超125款游戲和應用支持DLSS 4多幀生成
在 COMPUTEX 2025,NVIDIA 發布多項內容。現在已有超過 125 款游戲和應用支持 DLSS 4 多幀生成,并有 10 款新游戲即將發布,《毀滅戰士:黑暗時代》將于 6 月更新支持路徑追蹤與 DLSS 光線重建,
基于RK3576開發板的二維碼生成
介紹了如何快速上手二維碼生成,包括源碼工程下載、開發環境搭建、例程編譯與運行。通過EASY-EAI API,用戶可輕松生成二維碼圖片,API封裝了二維碼生成工具,提供了詳細的調用說明和
NVIDIA助力影眸科技3D生成工具Rodin升級
AI、計算機視覺技術在大眾娛樂市場的推廣應用,其 3D 生成工具 Rodin(Hyper3d.ai)去年 6 月發布后迅速突破了百萬用戶量級,背后技術論文 CLAY 還提名了 SIGGRAPH 最佳論文
?Diffusion生成式動作引擎技術解析
Diffusion生成式動作引擎 Diffusion生成式動作引擎是一種基于擴散模型(Diffusion Models)的生成式人工智能技術,專注于
一款文檔生成工具:Doxygen生成
評論