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. Pandas 基本技巧

    1.数据查看和转置 import numpy as np import pandas as pd # 导入numpy.pandas模块 # 数据查看.转置 df = pd.DataFrame(np.r ...

  2. 吴恩达DeepLearning 第一课第四周随笔

    第四周 4.1深度神经网络符号约定 L=4______(神经网络层数)   4.2 校正矩阵的维数 校正要点:,, dZ,dA,dW,db都与它们被导数(Z,A,W,b)的维数相同 4.3 为什么使用 ...

  3. [Codeforces976E]Well played!(贪心)

    [不稳定的传送门] Solution 首先可以证明,hp翻倍的操作一定是在同一个生物上最优 Code #include <cstdio> #include <algorithm> ...

  4. 20145202马超 《Java程序设计》 实验一 实验报告

    一.实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 二.实验内容 1.完成在Windows环境下对IDEA的配置: 2.实现求正整 ...

  5. 15,Flask-Script

    Flask-Script 从字面意思上来看就是 Flask 的脚本 是的,熟悉Django的同学是否还记得Django的启动命令呢? python manager.py runserver 大概是这样 ...

  6. 剑指Offer - 九度1389 - 变态跳台阶

    剑指Offer - 九度1389 - 变态跳台阶2013-11-24 04:20 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳 ...

  7. 《Cracking the Coding Interview》——第2章:链表——题目3

    2014-03-18 02:25 题目:给定一个单链表中间的节点,删掉那个节点. 解法:把后面节点的数据域拷到当前节点来,然后删除后面那个节点.当前节点不是尾巴,所以后面不为空. 代码: // 2.2 ...

  8. 《Cracking the Coding Interview》——第1章:数组和字符串——题目2

    2014-03-18 01:30 题目:反转一个char *型的C/C++字符串. 解法:一头一尾俩iterator,向中间靠拢并且交换字符. 代码: // 1.2 Implement a funct ...

  9. 如何创造财富?硅谷创业之父 Paul Graham 《黑客与画家》思维导图

    先送上亚马逊传送门:<黑客与画家>:硅谷创业之父 Paul Graham 文集 再送上一个思维导图: 下载大图:http://caifujianghu.com/article/ruhe-c ...

  10. PICT:基于正交法的软件测试用例生成工具

    成对组合覆盖这一概念是Mandl于1985年在测试Aad编译程序时提出来的.Cohen等人应用成对组合覆盖测试技术对Unix中的“Sort”命令进行了测试.测试结果表明覆盖率高达90%以上.可见成对组 ...