程序员的很多文档,特别是有代码的文档,绝大部分都是由一款文档生成工具【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文章
3213浏览量
42294 -
C++
+关注
关注
21文章
2097浏览量
73450
原文标题:一款常用文档生成工具:Doxygen
文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
生成式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以其出色的视频生成能力,瞬间成为业界的焦点。
沃尔玛推出生成式人工智能工具
在拉斯维加斯举办的2024年消费电子展上,全球最大的零售商沃尔玛发布了一款最新的AI技术产品。该公司推出了一种生成式人工智能工具,这一
labview生成exe后报表不能用
LabVIEW是一款流程化的编程语言和开发环境,广泛应用于工业自动化、实验室研究、仪器仪表等领域。通过LabVIEW开发的程序可以生成可执行文件(.exe),方便用户在没有安装LabVIEW开发环境
labview的opc生成配置文件
LabVIEW 是一款非常强大的图形化编程软件,它在工业自动化领域应用广泛。而 OPC(OLE for Process Control)是一种用于工业自动化系统的标准通信协议,它能够实现不同设备之间
能够生成java文档注释的命令
生成Java文档注释的命令是通过使用Java的自带工具Javadoc来实现的。Javadoc是一个能够从源代码中提取注释并生成文档的
评论