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使用介绍相关推荐

  1. doxygen简单介绍

    doxygen简单介绍 概述 doxygen官方文档 这是一个生成文档的工具,可以通过代码文件中的注释进行文档的生成,通过画图工具可以绘制调用过程和文件包含关系等 安装 sudo apt-get in ...

  2. Doxygen详细介绍

    1   序言 为代码写注释一直是大多数程序员有些困扰的事情.当前程序员都能接受为了程序的可维护性.可读性编码的同时写注释的说法,但对哪些地方应该写注释,注释如何写,写多少等这些问题,很多程序员仍然没有 ...

  3. Doxygen使用指南,Doxygen介绍一

    Doxygen使用指南 一.Doxygen的介绍 Doxygen能够很好的解决代码和文档同步问题,在代码中加入有@标识符的注释,修改代码时实时修改注释,然后通过Doxygen可以生成更新后的文档. D ...

  4. Doxygen学习笔记

    文章目录 1. Doxygen基本介绍 2. Doxygen 下载安装 2.1 Git方式安装 (源码) 2.1 安装包方式安装 3. Doxygen使用 3.1 第1步,确认支持你使用的语言 3.2 ...

  5. C++ API设计笔记

    <C++ API设计>原英文版由Martin Reddy著,中文版出版于2013年,这里是中文版的笔记. 1. API简介 1.1 什么是API:API(Application Progr ...

  6. 源代码文档生成 Doxygen介绍(转载)

    源代码文档生成 Doxygen介绍(转载) 收藏 Doxygen介绍 一.Doxygen介绍 在项目开发过程中最重要的是如何和团队中其它成员沟通,如何在项目完成后减低维护成本,随着公司的人员流动,怎样 ...

  7. Linux下C++开发工具介绍

    概述     就C++开发工具而言,与Windows下微软(VC, VS2005等)一统天下相比,Linux/Unix下C++开发,可谓五花八门,各式各样.Emacs, vi, eclipse, an ...

  8. FFmpeg中AVDictionary介绍

    FFmpeg中的AVDictionary是一个结构体,简单的key/value存储,经常使用AVDictionary设置或读取内部参数,声明如下,具体实现在libavutil模块中的dict.c/h, ...

  9. doxygen 注释规范_编程规范 - doxygen注释规范示例(C++)

    doxygen注释规范示例(C++) doxygen能根据code的注释自动生成code的帮助文档,并且doxygen是一个跨平台的开源的软件,但是要生成帮助文档,code内的注释必须按一定规则书写. ...

最新文章

  1. 经典贪心法:时间序列问题及其全局最优性证明
  2. spark之scala快速入门
  3. springmvc配置同时支持html和jspl两种格式的页面
  4. UGUI滚动列表ScrollView使用注意点
  5. mysql 密码文件改成密文_数据库密码弄成密文
  6. Java内存区域-运行时数据区域
  7. js 自定义 $ 选择器
  8. c语言中printf读入方向,C语言习题答案.doc
  9. Andorid-ViewPage2 左右滑动
  10. 斯蒂夫乔布斯传札记:第六波
  11. 一份简单的车辆环视全景系统实现
  12. 新塘单片机烧写器_ICP Programming Tool下载|新唐单片机烧录工具ICP Programming Tool v3.00.6909 官方版 下载 - 巴士下载站...
  13. C++基础(持续更新)
  14. win7下配置IIS
  15. 核心网upf作用_5G核心网UPF硬件加速技术
  16. 机票分享第六篇 机票搜索系统演进的经验
  17. 滴滴出行2017校园春招内推面试(一)
  18. 四川广电网络、阿里云、数梦工场强强联手 共建“智慧广电城市大脑”
  19. 如何构建营销活动平台(二):业务功能设计
  20. JSP开发环境搭建(Tomcat的安装和配置)

热门文章

  1. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式
  2. OpenCV(十八)霍夫变换(直线、线段与圆检测)
  3. 丢失msvcr120d.dll、msvcr120.dll、msvcp120d.dll、msvcp120.dll问题解决方法
  4. 兰州大学C语言程序设计课程作业,【兰州大学|兰州大学C语言程序设计课程作业( 五 )】语言程序设计|课程|作业-傻大方...
  5. go连接Kafka报错kafka: client has run out of available brokers to talk to
  6. 在Mac上使用pip3安装Jupyter Notebook并简单使用
  7. 编写Makefile中遇到的各种奇葩问题汇总
  8. g-gdb工具使用图谱(持续更新)
  9. C语言网络编程:TCP实现多线程实现多客户端
  10. linux 系统调用 read,write和lseek 使用