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

程序员的很多文档,特别是有代码的文档,绝大部分都是由一款文档生成工具【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,预计下一版本修复*/int sin(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。


防止黑客入侵刀片服务器的操作方法
如何减小变压器漏感
防反接电路设计 二极管管型防反接保护电路
电流互感器二次电流1A和5A的选择,以及不同精度的使用场合
埃森展现24吨超巨型机器人
一款文档生成工具:Doxygen生成
Java:JVM虚拟机的入门知识
触控显示设备在智能存储柜上的应用
苏州固锝拟发行可转债不超过11.22亿元,加码电子浆料、封测等业务
!!销售/收购!HP4191A 电桥 Agilent 419
万向发布称获得通用汽车几乎所有类型电池业务定点供应商资格
Well Grounded, Digital Is Anal
谐波保护器的作用是什么
Smart Eye获得北美大型OEM多达53个车型价值8亿瑞典克朗的订单
1nm芯片是什么概念,它有多厉害
索尼Xperia 3旗舰手机曝光将搭载骁龙865平台和后置6个摄像头
深度学习在家畜智慧养殖中研究应用进展
未设置内部零件存储缓冲区的自动化机械加工生产线结构组成及节拍原理
区块链技术也许能成为发展中国家赶超发达国家的革命性力量
虹科分享 | 超酷!AR眼镜助力装配中国空间站