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 自动生成文档的更多相关文章

  1. 用doxygen自动生成文档

    1. 添加符合doxygen解析规则的注释 (比如函数说明,函数参数/返回值说明) 用qt-creator可以在函数上方一行键入“/**”,然后直接回车,就可以自动生成默认的格式. 2. 安装doxy ...

  2. 使用doctest代码测试和Sphinx自动生成文档

    python代码测试并自动生成文档 Tips:两大工具:doctest--单元测试.Sphinx--自动生成文档 1.doctest doctest是python自带的一个模块.doctest有两种使 ...

  3. eoLinker 新功能发布,增加了识别代码注释自动生成文档功能

    产品地址:https://www.eolinker.com开源代码:https://www.eolinker.com/#/os/download在线生成代码注释工具:http://tool.eolin ...

  4. MVC WEB api 自动生成文档

    最近在一直在用webapi做接口给移动端用.但是让我纠结的时候每次新加接口或者改动接口的时候,就需要重新修改文档这让我很是苦恼.无意中发现.webapi居然有自动生成文档的功能....真是看见了救星啊 ...

  5. 使用swagger在netcorewebapi项目中自动生成文档

    一.背景 随着前后端分离模式大行其道,我们需要将后端接口撰写成文档提供给前端,前端可以查看我们的接口,并测试,提高我们的开发效率,减少无效的沟通.在此情况下,通过代码自动生成文档,这种需求应运而生,s ...

  6. SpringBoot 集成Swagger2自动生成文档和导出成静态文件

    目录 1. 简介 2. 集成Swagger2 2.1 导入Swagger库 2.2 配置Swagger基本信息 2.3 使用Swagger注解 2.4 文档效果图 3. 常用注解介绍 4. Swagg ...

  7. 使用 Swagger 自动生成 ASP.NET Core Web API 的文档、在线帮助测试文档(ASP.NET Core Web API 自动生成文档)

    对于开发人员来说,构建一个消费应用程序时去了解各种各样的 API 是一个巨大的挑战.在你的 Web API 项目中使用 Swagger 的 .NET Core 封装 Swashbuckle 可以帮助你 ...

  8. 【Sphinx】 为Python自动生成文档

    sphinx 前言 Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等 开始 建一个存放文档的do ...

  9. 使用Sphinx为你的python模块自动生成文档

    Sphinx是一个可以用于Python的自动文档生成工具,可以自动的把docstring转换为文档,并支持多种输出格式包括html,latex,pdf等. 安装 创建一个sphinx项目 下面的命令会 ...

随机推荐

  1. 20145202 《Java程序设计》实验四实验报告

    实验名称 Andoid开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android组件.布局管理器的使用: 3.掌握Android中事件处理 ...

  2. 多个".h"文件中声明及定义 全局变量和函数

    一.".h"文件必须以如下格式书写 例:文件<CZ_efg_hi.h"> ------------文件内容----------- #ifndef CZ_Efg ...

  3. 5.Mongodb聚合

    聚合 aggregate 聚合(aggregate)主要用于计算数据,类似sql中的sum().avg() 语法 db.集合名称.aggregate([{管道:{表达式}}]) 1.管道 管道在Uni ...

  4. 《Cracking the Coding Interview》——第18章:难题——题目6

    2014-04-29 02:27 题目:找出10亿个数中最小的100万个数,假设内存可以装得下. 解法1:内存可以装得下?可以用快速选择算法得到无序的结果.时间复杂度总体是O(n)级别,但是常系数不小 ...

  5. 玩转Node.js(二)

    玩转Node.js(二) 先来回顾上次的内容,上一次我们使用介绍了Node.js并写了第一个服务器端的Hello World程序,在这个Hello World程序中,请求自带的http模块并将其赋给h ...

  6. 社区版pycharm安装Django框架

    1.cmd下执行:pip3 install django 2.cmd下执行:django-admin startproject Demo (Demo为项目名称,可以更改你取的项目名称) 3.cmd下执 ...

  7. finally在return之后还是之前运行

    finally在运行前打印出来是return的数据,finally是最后修改的数据,如果finally存在对返回值的修改,则以finally修改的值为准. 综上所述,finally最后运行.

  8. Linux认知之旅【01 与Linux第一次亲密接触】!

    一.搜索LINUX,了解它的前世今生! linux很厉害,应用在很多方面,我知道有超算.IOT.树莓派. 而且好多开发人员都在用这个系统.linux作为服务器使用,常年不用重启,不宕机,很少受病毒影响 ...

  9. mysql数据库的日常使用

    mysql管理: 首先记得你只要改了权限设置,请记得重启下mysql数据库服务. 适用环境全部是linux环境下适用了. 1.查看mysql服务是否启动 ps -aux | grep mysqld 如 ...

  10. 使用UltraEdit搭建自己的C/C++ IDE

    使用UltraEdit搭建自己的C/C++ IDE CodeBlocks的13.12版本啊,主要缺点是启动慢,而且在Windows上容易假死,写着写着就无响应了,然后死活活不过来.所以没办法,只好干脆 ...