linux c/c++ 代码使用 doxygen 自动生成文档
www.doxygen.org 的使用非常方便,下面分成2步介绍一下
1. 注释风格,需要在c/c++代码中按照下面的风格添加注释,基本上还是很顺手的
C++的注释风格 主要使用下面这种样式:即在注释块开始使用三个反斜杠‘/’
文件注释
/**
*@file 文件名
*@brief 概述
*
*详细概述
*
*@author 作者,包含email等
*@version 版本号(maj.min,主版本.分版本格式)
*@date 日期
*/
命名空间的注释
///@brief 简单概述
///
///详细概述
类定义注释
对需要的类增加注释,需要 说明类的设计方法,类的使用指南,说明类的不变项
///@brief 简要概述
///
///详细说明
///
///使用指南设计函数调用可以@ref 函数名 用于引用其他的说明
///
///其他说明,重写父类函数加以特殊实现
///
///@invariant 类不变项,例如哪些值不会超多少多少
///
class xxx
{…
数据声明注释
行尾说明
Type varName;///< 说明
多行说明
///说明
///
///
Type varName;
函数注释规范
///@brief 简单概述
///
///详细说明
///@param[in|out] 参数名,in,out表示输入还是输出
///@pre 前者条件
///@return 说明
///@retval 返回值 说明, 这个是可选的
///@post 说明函数完成后的世界状态
代码标记数值规范
///@todo 将要做的代码
///@bug 表示此处的bug描述
枚举变量的注释示例
/// 颜色的枚举定义
///
/// 该枚举定义了系统中需要用到的颜色\n
/// 可以使用该枚举作为系统中颜色的标识
enum TEnum
{
RED, ///< 枚举,标识红色
BLUE, ///< 枚举,标志蓝色
YELLOW ///< 枚举,标志黄色.
}enumVar;
附: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 linux下使用doxygen
我的开发环境是ubuntu, 默认有doxygen 命令,如果没有可以从官网下载一个编译安装之
doxygen工具的使用简单的2步就够了:
2.1 生成默认配置文档
doxygen -s -g yourconfigname
这一条命令就可以生成一个叫 “yourconfigname” 的配置文档
接下来需要打开这个文档,对其中某些字段做配置,一般来说,只需要配置其中十几个字段就可以:
# 项目名称,将作为于所生成的程序文档首页标题
PROJECT_NAME = “Test“
# 文档版本号,可对应于项目版本号,譬如 svn 、 cvs 所生成的项目版本号
PROJECT_NUMBER = "1.0.0”
# 程序文档输出目录
OUTPUT_DIRECTORY = doc/
# 程序文档语言环境
OUTPUT_LANGUAGE = Chinese
# 如果是制作 C 程序文档,该选项必须设为 YES ,否则默认生成 C++ 文档格式
OPTIMIZE_OUTPUT_FOR_C = YES
# 对于使用 typedef 定义的结构体、枚举、联合等数据类型,只按照 typedef 定义的类型名进行文档化
TYPEDEF_HIDES_STRUCT = YES
# 在 C++ 程序文档中,该值可以设置为 NO ,而在 C 程序文档中,由于 C 语言没有所谓的域 / 名字空间这样的概念,所以此处设置为 YES
HIDE_SCOPE_NAMES = YES
# 让 doxygen 静悄悄地为你生成文档,只有出现警告或错误时,才在终端输出提示信息
QUIET = YES
# 只对头文件中的文档化信息生成程序文档
FILE_PATTERNS = *.h
# 递归遍历当前目录的子目录,寻找被文档化的程序源文件
RECURSIVE = YES
# 示例程序目录
EXAMPLE_PATH = example/
# 示例程序的头文档 (.h 文件 ) 与实现文档 (.c 文件 ) 都作为程序文档化对象
EXAMPLE_PATTERNS = *.c *.h
# 递归遍历示例程序目录的子目录,寻找被文档化的程序源文件
EXAMPLE_RECURSIVE = YES
# 允许程序文档中显示本文档化的函数相互调用关系
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
# 不生成 latex 格式的程序文档
GENERATE_LATEX = NO
# 在程序文档中允许以图例形式显示函数调用关系,前提是你已经安装了 graphviz 软件包
HAVE_DOT = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
# 让 doxygen 从配置文件所在的文件夹开始,递归地搜索所有的子目录及源文件
RECURSIVE = YES
# 在最后生成的文档中,把所有的源代码包含在其中
SOURCE BROWSER = YES
$ 这会在 HTML 文档中,添加一个侧边栏,并以树状结构显示包、类、接口等的关系
GENERATE TREEVIEW = ALL
2.2 执行命令
doxygen yourconfigname
这一条命令就可以在指定的目录下生成 html 目录(根据配置决定,也可以生成帮助文档等)
2.3 用apache等存放刚刚生成的html目录
比如我的机器安装了apache,则可以在 /var/run/www 目录下建一个软连接
连接到刚刚生成好的 html 目录,然后就可以从浏览器访问文档了,下面是我的项目的文档界面
下面这个是win上面使用的例子:http://wildpointer.net/2012/04/14/doxygen_graphviz/
其他参考:
http://blog.csdn.net/blood008/article/details/6567169
linux c/c++ 代码使用 doxygen 自动生成文档的更多相关文章
- 用doxygen自动生成文档
1. 添加符合doxygen解析规则的注释 (比如函数说明,函数参数/返回值说明) 用qt-creator可以在函数上方一行键入“/**”,然后直接回车,就可以自动生成默认的格式. 2. 安装doxy ...
- 使用doctest代码测试和Sphinx自动生成文档
python代码测试并自动生成文档 Tips:两大工具:doctest--单元测试.Sphinx--自动生成文档 1.doctest doctest是python自带的一个模块.doctest有两种使 ...
- eoLinker 新功能发布,增加了识别代码注释自动生成文档功能
产品地址:https://www.eolinker.com开源代码:https://www.eolinker.com/#/os/download在线生成代码注释工具:http://tool.eolin ...
- MVC WEB api 自动生成文档
最近在一直在用webapi做接口给移动端用.但是让我纠结的时候每次新加接口或者改动接口的时候,就需要重新修改文档这让我很是苦恼.无意中发现.webapi居然有自动生成文档的功能....真是看见了救星啊 ...
- 使用swagger在netcorewebapi项目中自动生成文档
一.背景 随着前后端分离模式大行其道,我们需要将后端接口撰写成文档提供给前端,前端可以查看我们的接口,并测试,提高我们的开发效率,减少无效的沟通.在此情况下,通过代码自动生成文档,这种需求应运而生,s ...
- SpringBoot 集成Swagger2自动生成文档和导出成静态文件
目录 1. 简介 2. 集成Swagger2 2.1 导入Swagger库 2.2 配置Swagger基本信息 2.3 使用Swagger注解 2.4 文档效果图 3. 常用注解介绍 4. Swagg ...
- 使用 Swagger 自动生成 ASP.NET Core Web API 的文档、在线帮助测试文档(ASP.NET Core Web API 自动生成文档)
对于开发人员来说,构建一个消费应用程序时去了解各种各样的 API 是一个巨大的挑战.在你的 Web API 项目中使用 Swagger 的 .NET Core 封装 Swashbuckle 可以帮助你 ...
- 【Sphinx】 为Python自动生成文档
sphinx 前言 Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等 开始 建一个存放文档的do ...
- 使用Sphinx为你的python模块自动生成文档
Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等. 安装 创建一个sphinx项目 下面的命令会 ...
随机推荐
- [CodeForces954G]Castle Defense(二分答案+差分)
Description 题目链接 Solution 二分答案,套一个差分标记即可 每次放弓箭手显然越右边越优 Code #include <cstdio> #include <alg ...
- PHP.25-TP框架商城应用实例-后台2-商品列表页-搜索、翻页、排序
商品列表页 1.翻页 控制器GoodsController.class.php添加方法lst(),显示列表页 在商品模型GoodsModel.class.php类中添加search方法 /** *实现 ...
- layout焊盘过孔大小的设计标准
PCB设计前准备 1.准确无误的原理图.包括完整的原理图文件和网表,带有元件编码的正式的BOM.原理图中所有器件的PCB封装(对于封装库中没有的元件,硬件工程师应提供datasheet或者实物,并指定 ...
- hasOne
public boolean hasOne(int n) { int lastdigit=0; while( n >0 ){ lastdigit=(n % 10); if(lastdigit== ...
- USACO Section1.5 Prime Palindromes 解题报告
pprime解题报告 —— icedream61 博客园(转载请注明出处)--------------------------------------------------------------- ...
- 【Theory of Generalization】林轩田机器学习基石
紧接上一讲的Break Point of H.有一个非常intuition的结论,如果break point在k取到了,那么k+1, k+2,... 都是break point. 那么除此之外,我们还 ...
- NOIP 2018 总结
NOIP 2018 总结 提高组: 应得分 \(100 + 100 + 40 + 100 + 50 + 44 = 434\). 考后期望得分 \(100 + 100 + 20 + 100 + 50 + ...
- swift中的正则表达式
swift中的t正则表达式 正则表达式是对字符串操作的一种逻辑公式,用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则字符串" ...
- linux的screen常用命令使用记录
新建screen screen 或者 screen -S name - name用于指定一个screen的名字,默认系统随机 暂时退出当前screen ctrl + a + d - 同时按住这三个键即 ...
- 推荐系统评测指标--准确率(Precision)和召回率(Recall)、F值(F-Measure)
转自http://bookshadow.com/weblog/2014/06/10/precision-recall-f-measure/ 1,准确率和召回率是广泛应用于信息检索和统计学分类领域的两个 ...