Doxygen的使用,配置及实例

Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,可以从一套归档源文件开始,生成文档

下载Doxygen + Graphviz

Doxygen可以生成动态文档

Graphviz可以生成视图连接将.c文件中所用到的函数、头文件生成一个树状结构并且设置之后可以生成相对应的函数的跳转,方便查询函数。

一、Doxygen的使用步骤

1.1Doxygen配置方法

1.1.1>Doxygen的主页面

首先修改Project name,选择扫描源代码的目录,Source code directory:勾选Scan recursively:

1.2>在Wizard的Topics下的Mode,选择All Entities,可以输出相对完整的功能,是否包含源代码看自身情况,在下面选择好自己的语言。这里得是C所以选择C or PHP

1.3>在Output中,如果你需要输出chm格式,勾选chm,没有要求的话html就可以了

1.4>在Diagrams中选择使用GraphViz包,来输出UML,GraphViz包可以帮助建立一些树状视图。

1.5>Expert中,你需要首选确定你所输出的语言,个人使用中文在Expert的Input中,很重要的是INPUT_ENCODING项,如果使用的为微软默认字符集请填写GBK,不然目录乱码,当前选择UTF-8,输出语言选择的是Chinese.

1.6>Build页面,这个页面是生成帮助信息中比较关键的配置页面:

EXTRACT_ALL 表示:输出所有的函数,但是private和static函数不属于其管制。

EXTRACT_PRIVATE 表示:输出private函数。

EXTRACT_STATIC 表示:输出static函数。同时还有几个EXTRACT,相应查看文档即可。

HIDE_UNDOC_MEMBERS 表示:那些没有使用doxygen格式描述的文档(函数或类等)就不显示了。当然,如果EXTRACT_ALL被启用,那么这个标志其实是被忽略的。

INTERNAL_DOCS 主要指:是否输出注解中的@internal部分。如果没有被启动,那么注解中所有的@internal部分都将在目标帮助中不可见。

CASE_SENSE_NAMES 表示:是否关注大小写名称,注意,如果开启了,那么所有的名称都将被小写。对于C/C++这种字母相关的语言来说,建议永远不要开启。

HIDE_SCOPE_NAMES 表示:域隐藏,建议永远不要开启。

SHOW_INCLUDE_FILES 表示:是否显示包含文件,如果开启,帮助中会专门生成一个页面,里面包含所有包含文件的列表。

INLINE_INFO :如果开启,那么在帮助文档中,inline函数前面会有一个inline修饰词来标明。

SORT_MEMBER_DOCS :如果开启,那么在帮助文档列表显示的时候,函数名称会排序,否则按照解释的顺序显示。

GENERATE_TODOLIST :是否生成TODOLIST页面,如果开启,那么包含在@todo注解中的内容将会单独生成并显示在一个页面中,其他的GENERATE选项同。

SHOW_USED_FILES :是否在函数或类等的帮助中,最下面显示函数或类的来源文件。

SHOW_FILES :是否显示文件列表页面,如果开启,那么帮助中会存在一个一个文件列表索引页面。

1.7>Expert>Input页按照下图进行设置调整参数。

1.8>

1.如果在 Wizard 的 Output Topics 中选择了 prepare for compressed HTML (.chm)选项,此处就会要求选择 hhc.exe 程序的位置。在 windows help workshop 安装目录下可以找到 hhc.exe。

2.为了解决Doxygen生成的CHM文件的左边树目录的中文变成了乱码,CHM_INDEX_ENCODING中输入GB2312即可。

3.GENERATE_CHI 表示索引文件是否单独输出,建议关闭。否则每次生成两个文件,比较麻烦。

4.TOC_EXPAND 表示是否在索引中列举成员名称以及分组(譬如函数,枚举)名称。

1.8>运行doxygen

1.9>运行结束

二.注释规范

2.1> Doxygen注释种类

Doxygen注释的种类有多种

1.

/**

 * ....描述...

*/

2.

/*!

 * ....描述...

*/

或者

/*!

  ....描述...

*/

注:注释块中的星号(*)是可选的,可写可不写。

3

///

///....描述...

///

或者

//!

//!....描述...

//!

4

////////////////////////

///....描述...

//////////////////////////

2.2>Doxygen支持的指令

可以在注释中加一些Doxygen支持的指令,主要作用是控制输出文档的排版格式,使用这些指令时需要在前面加上“\”或者“@”(JavaDoc风格)符号,告诉Doxygen这些是一些特殊的指令,通过加入这些指令以及配备相应的文字,可以生成更加丰富的文档,下面对比较常用的指令做一下简单介绍。


@file


档案的批注说明。


@author


作者的信息


@brief


用于class或function的简易说明

eg:@brief本函数负责打印错误信息串


@param


主要用于函数说明中,后面接参数的名字,然后再接关于该参数的说明


@return


描述该函数的返回值情况

eg: @return 本函数返回执行结果,若成功则返回TRUE,否则返回FLASE


@retval


描述返回值类型

eg:@retval NULL 空字符串。
@retval !NULL 非空字符串。


@note


注解


@attention


注意


@warning


警告信息


@enum


引用了某个枚举,Doxygen会在该枚举处产生一个链接

eg:@enum CTest::MyEnum


@var


引用了某个变量,Doxygen会在该枚举处产生一个链接

eg:@var
CTest::m_FileKey


@class


引用某个类,

格式:@class
<name> [<header-file>] [<header-name>]

eg: @class CTest "inc/class.h"


@exception


可能产生的异常描述

eg:@exception 本函数执行可能会产生超出范围的异常

2.3>文件注释

放于文件的开头,例如:

/**

* @file       filename

* @brief      This is a brief description.

* @details This is the detail description.

* @author     author

* @date       date

* @version A001

* @par Copyright (c):

*      XXX公司

* @par History:        

*   version: author, date, desc\n

*/

2.3>函数注释

放于函数声明前,例如:

/** 下面是一个含有两个参数的函数的注释说明(简述) 

 * 

 *     这里写该函数的详述信息 

 *     @param a 被测试的变量(param描述参数) 

 *     @param s 指向描述测试信息的字符串 

 *     @return    测试结果 (return描述返回值) 

 *     @see    Test()    (本函数参考其它的相关的函数,这里作一个链接) 

 *     @note    (note描述需要注意的问题) 

 */int testMe(int a,const char *s);

2.4>数据结构注释

应放于函数声明前,例如:

/**

 * The brief description.

 * The detail description.

 */

typedef struct

{

    int var1;///<Description of the member variable

}XXXX;

或者

typedef struct box {

    成员变量注释(enum的各个值也如此注释):

    double length; ///< The length of the box

    double width; ///< The width of the box

    double height; ///< The height of the box

};

2.5>宏定义注释

放于宏定义上方或者右侧,例如:

/** Description of the macro */

#define XXXX_XXX_XX      ox7fffffff

或者

#define XXXX_XXX_XX      0 ///< Description of the macro.

2.6>全局和静态变量注释

例如:

/**  Description of global variable  */
int g_xxx = 0;
static int s_xxx = 0; ///<  Description of static variable
时间: 2024-10-09 11:10:25

Doxygen的使用,配置及实例的相关文章

CefSharp的引用、配置、实例

CefSharp的引用.配置.实例与报错排除(源码) Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfrom项目.引用CefSharp的方法,演示了winfrom下CefSharp的基本使用,包括显示网页url/本地html显示.JavaScript调用异步C#方法.JavaScript调用带参数C#方法.JavaScript调用委托C#方法.JavaScript调用C#返回实体对象.ChromiumW

JMeter学习-010-JMeter 配置元件实例之 - CSV Data Set Config 参数化配置

众所周知,在进行接口测试的过程中,需要创建不同的场景(不同条件的输入,来验证不同的入参的返回结果).因而,在日常的自动化接口监控或商品监控等线上监控过程中,需要配置大量的入参来监控接口的返回是否正确. 日常常见的线上监控几个简单的监控示例场景如下: 监控电商网站某个类目下的商品数量.若类目中商品的数量小于一定的数量,则认为需要认为查看商品池的商品是否正确: 监控商品的价格.当商品价格出现超出限定的波动幅度时,通知相应的商品负责人,对其进行确认,从而保证商品价格的正确无误. 监控商品在某一地域是否

HA集群详细配置和实例

一.集群的介绍 二.集群需要的软件 三.集群的配置 四.实例讲述集群 一.集群的介绍 集群的概念 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术. 集群是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用于提高可用性和可缩放性. HA==high available 二台服务器

html编辑器tinymce使用配置教程实例demo分享

原文:html编辑器tinymce使用配置教程实例demo分享 源代码教程地址:http://www.zuidaima.com/share/1550463284202496.htm 很简单的demo,大家可以扩展,不过功能很全. 标签: 编辑器 富文本 html tinymce 教程话题: 前端技术 入门教程 html编辑器tinymce使用配置教程实例demo分享

Kali Linux下安装配置ProFTPD实例

1,安装ProFTPD 在ftp://ftp.proftpd.org/下可以找到官方发布的各个ProFTPD版本,本人使用ftp://ftp.proftpd.org/historic/source/proftpd-1.3.0a.tar.gz [email protected]:~# wget ftp://ftp.proftpd.org/historic/source/proftpd-1.3.0a.tar.gz [email protected]:~# tar –xf proftpd-1.3.0a

【前端】vue.js环境配置以及实例运行简明教程

vue.js环境配置以及实例运行简明教程 声明:本文档编写参考如下两篇博客,是对它们的修改与补充,欢迎点击链接查看原文: 原文1:vue.js在windows本地下搭建环境和创建项目 原文2:Vue.js开发环境搭建 VUE.JS简介 何为Vue.js Vue.js(读音 /vju?/, 类似于 view)是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vue

Apache+JBoss配置多实例+负载均衡(mod_jk实现)

最近需要使用JBoss配置项目的负载均衡(最好能有多实例保证并发量),经过1整天的搜索和实践,最终终于成功,在此记录下来,以便他人和自己日后参考. 系统环境: Windows Server 2003 软件环境: JDK 7 (Update 55) VC9 (http://www.microsoft.com/download/en/details.aspx?id=5582) Apache httpd 2.2.29 (http://www.apachelounge.com/download/addi

centos7下yum安装mysql5.6.30及配置多实例

1.在mysql官网上载tar包 MySQL-5.6.30-1.el6.i686.rpm-bundle.tar 进目录cd /home/fuyouling/ 解压tar -xvf MySQL-5.6.30-1.el6.i686.rpm-bundle.tar MySQL-client-5.6.30-1.el7.x86_64.rpm MySQL-devel-5.6.30-1.el7.x86_64.rpm MySQL-embedded-5.6.30-1.el7.x86_64.rpm MySQL-ser

DotNetCore学习-1.读取Json配置并绑定到配置类实例

DotNetCore的程序的配置不再完全局限于XML文件,增加更加通用的Json配置. 读取Json配置文件的类主要在Microsoft.Extensions.Configuration命名空间下,创建完对应的程序后,需要时NuGet引入该DLL文件. 1. 创建ConsoleApp程序 Vs2017中直接使用新建项中选择创建控制台应用(.NET Core). 2. 使用NuGet添加程序记引用 依赖项节点上右击,选择"管理NuGet程序包",搜索Microsoft.Extension

读取xml文件中的配置参数实例_java - JAVA

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 paras.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xm