Doxygen使用介绍
Doxygen的主页为http://doxygen.nl/,它的license为GPL,最新发布版本为1.8.17,源代码存放在https://github.com/doxygen/doxygen,它支持的语言包括C、C++、Objective-C、C#、Java、Python等,它支持的系统平台包括Winodws、Linux、MacOS等。你既可以通过源码编译安装,也可以直接通过二进制文件安装,可从http://www.doxygen.nl/download.html 直接下载二进制文件。
Doxygen是文档生成工具,用于从带注释的C++等语言源码中生成文档。它可产生的文档格式包括HTML、LaTex、xml等。该文档直接从源代码中提取,这使得文档和源代码保持一致变得很容易。你可以配置Doxygen使其从未记录的源文件中提取代码结构(You can configure doxygen to extract the code structure from undocumented source files)。Doxygen还可以通过包括依赖图、继承图和协助图来可视化各个元素直接的关系,所有这些图都是自动生成的。你也可以使用Doxygen来创建常规文档。
Doxygen使用步骤:
(1). 以下以Windows平台为例,介绍其使用,这里主要关心怎么生成文档,不关心其code实现,因此直接下载二进制文件doxygen-1.8.17-setup.exe进行安装。安装过程中不需要什么特别设置,默认即可。安装完后,打开命令提示符,输入doxygen.exe,执行结果如下,说明已正确安装:安装完后,在指定的安装目录下会有一个doxygen_manual.chm文件,此文件为用户手册,供大家查询相关信息。
(2). 生成doxygen配置文件:Doxygen使用配置文件来确定其所有设置。每一个项目应该设置它自己的配置文件。为了简化配置文件的创建,Doxygen可以为你创建一个模板配置文件。通过执行doxygen.exe -y或doxygen.exe -y xxx,其中xxx为配置文件的名字,如果不指定,则默认生成的配置文件名字为Doxyfile,执行结果如下:
生成的Doxyfile文件有2000多行,可通过文本编辑器打开它。配置文件的格式类似于简单的Makefile的格式,它由许多标签(tag)组成,大多数标签都给了其默认值,可根据自己实际需要进行修改。每个标签的用法可在doxygen_manual.chm中查找,而且Doxyfile中也给出了描述。这里仅列出几个用到的需要修改默认值的标签:
PROJECT_NAME = "Doxygen_Test"
INPUT = E:/GitCode/Doxygen_Test
FILE_PATTERNS = *.hpp *.cpp
RECURSIVE = YES
OUTPUT_DIRECTORY = E:/GitCode/Doxygen_Test
GENERATE_LATEX = NO
INPUT_ENCODING = GB2312
设置好后的Doxyfile文件部分内容如下:
(3). 以C++为例,编写测试code,按照doxygen支持的格式添加注释,所有的文件全部存放在E:/GitCode/Doxygen_Test目录下,doxygen支持的注释示例可参考安装目录下的examples目录或doxygen_manual.chm,测试代码头文件api.hpp内容如下:
#ifndef FBC_DOXYGEN_TEST_
#define FBC_DOXYGEN_TEST_/// @file api.hpp
/// @brief 以下所有的声明全部在命名空间fbc内
/// @author fengbingchun
/// @version 1.0.0
/// @date 2020-03-08
/// @copyright MIT
/// @since 仅作为测试用,无任何实际意义
namespace fbc {/// 设置缓存大小
#define BUFSIZE 1024 * 3/// @brief 矩形定义
typedef struct fbc_rect{int width; ///< 矩形宽int height; ///< 矩形高
} fbc_rect;/// @brief 人脸识别类
/// @details 输入一张图像,返回检测到人脸图像框位置
/// @attention 仅支持输入bgr 3通道图像,仅支持检测一张人脸
class FaceRecognition {
public:FaceRecognition() = default; ///< 默认构造函数/// @brief 带参数的构造函数/// @param[in] data 图像数据首地址/// @param[in] width 图像宽/// @param[in] height 图像高/// @bug 内部没有对参数进行判断FaceRecognition(unsigned char* data, int width, int height);/// @brief 人脸检测/// @param[out] rect 检测到的人脸/// @return 正常返回0,否则返回错误码int Run(fbc_rect& rect);private:unsigned char* data_; ///< 图像数据int width; ///< 图像宽int height; ///< 图像高
};/*** @brief 加操作* @attention 并没有对输入参数进行判断* @param[in] rect1 矩形大小* @param[in] rect2 矩形大小* @param[out] rect3 计算结果* @return 正常执行返回0,否则返回错误码
*/
int fbc_add(const fbc_rect& rect1, const fbc_rect& rect2, fbc_rect& rect3);/// @brief 人脸检测
/// @warning 内部并没有判断是否溢出
/// @see https://blog.csdn.net/fengbingchun
/// @return 正常执行返回0,否则返回错误码
int fbc_face_detect();} // namespace fbc#endif // FBC_DOXYGEN_TEST_
(4). 生成文档:执行doxygen.exe Doxyfile,执行结果如下:
执行完后会在E:/GitCode/Doxygen_Test目录下产生一个html目录,打开里面的任一html文件,如api_8hpp.html结果如下:
Doxygen使用介绍相关推荐
- doxygen简单介绍
doxygen简单介绍 概述 doxygen官方文档 这是一个生成文档的工具,可以通过代码文件中的注释进行文档的生成,通过画图工具可以绘制调用过程和文件包含关系等 安装 sudo apt-get in ...
- Doxygen详细介绍
1 序言 为代码写注释一直是大多数程序员有些困扰的事情.当前程序员都能接受为了程序的可维护性.可读性编码的同时写注释的说法,但对哪些地方应该写注释,注释如何写,写多少等这些问题,很多程序员仍然没有 ...
- Doxygen使用指南,Doxygen介绍一
Doxygen使用指南 一.Doxygen的介绍 Doxygen能够很好的解决代码和文档同步问题,在代码中加入有@标识符的注释,修改代码时实时修改注释,然后通过Doxygen可以生成更新后的文档. D ...
- Doxygen学习笔记
文章目录 1. Doxygen基本介绍 2. Doxygen 下载安装 2.1 Git方式安装 (源码) 2.1 安装包方式安装 3. Doxygen使用 3.1 第1步,确认支持你使用的语言 3.2 ...
- C++ API设计笔记
<C++ API设计>原英文版由Martin Reddy著,中文版出版于2013年,这里是中文版的笔记. 1. API简介 1.1 什么是API:API(Application Progr ...
- 源代码文档生成 Doxygen介绍(转载)
源代码文档生成 Doxygen介绍(转载) 收藏 Doxygen介绍 一.Doxygen介绍 在项目开发过程中最重要的是如何和团队中其它成员沟通,如何在项目完成后减低维护成本,随着公司的人员流动,怎样 ...
- Linux下C++开发工具介绍
概述 就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样.Emacs, vi, eclipse, an ...
- FFmpeg中AVDictionary介绍
FFmpeg中的AVDictionary是一个结构体,简单的key/value存储,经常使用AVDictionary设置或读取内部参数,声明如下,具体实现在libavutil模块中的dict.c/h, ...
- doxygen 注释规范_编程规范 - doxygen注释规范示例(C++)
doxygen注释规范示例(C++) doxygen能根据code的注释自动生成code的帮助文档,并且doxygen是一个跨平台的开源的软件,但是要生成帮助文档,code内的注释必须按一定规则书写. ...
最新文章
- 经典贪心法:时间序列问题及其全局最优性证明
- spark之scala快速入门
- springmvc配置同时支持html和jspl两种格式的页面
- UGUI滚动列表ScrollView使用注意点
- mysql 密码文件改成密文_数据库密码弄成密文
- Java内存区域-运行时数据区域
- js 自定义 $ 选择器
- c语言中printf读入方向,C语言习题答案.doc
- Andorid-ViewPage2 左右滑动
- 斯蒂夫乔布斯传札记:第六波
- 一份简单的车辆环视全景系统实现
- 新塘单片机烧写器_ICP Programming Tool下载|新唐单片机烧录工具ICP Programming Tool v3.00.6909 官方版 下载 - 巴士下载站...
- C++基础(持续更新)
- win7下配置IIS
- 核心网upf作用_5G核心网UPF硬件加速技术
- 机票分享第六篇 机票搜索系统演进的经验
- 滴滴出行2017校园春招内推面试(一)
- 四川广电网络、阿里云、数梦工场强强联手 共建“智慧广电城市大脑”
- 如何构建营销活动平台(二):业务功能设计
- JSP开发环境搭建(Tomcat的安装和配置)
热门文章
- Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式
- OpenCV(十八)霍夫变换(直线、线段与圆检测)
- 丢失msvcr120d.dll、msvcr120.dll、msvcp120d.dll、msvcp120.dll问题解决方法
- 兰州大学C语言程序设计课程作业,【兰州大学|兰州大学C语言程序设计课程作业( 五 )】语言程序设计|课程|作业-傻大方...
- go连接Kafka报错kafka: client has run out of available brokers to talk to
- 在Mac上使用pip3安装Jupyter Notebook并简单使用
- 编写Makefile中遇到的各种奇葩问题汇总
- g-gdb工具使用图谱(持续更新)
- C语言网络编程:TCP实现多线程实现多客户端
- linux 系统调用 read,write和lseek 使用