doxygen的简单使用(快速上手)
在网上找了很久一个简单的doxygen教程,这个是最简单的,让你看完之后马上就能写doxygen格式的代码
doxygen是一种从源代码生成文档的工具,支持多种语言。当然,源代码中需按一定的格式写注释,这些注释的格式也能帮助我们养成很好的注释习惯,可以尝试一下。
使用doxygen生成文档的方法很简单:
$ doxygen -g –s
$ doxygen
只需两个简单命令就可以了。
下面简单说明一下:
1、在工程目录下输入doxygen –s –g doxyconfig,其中doxyconfig为生成配置的文件名称,可任意指定,如果不指定,默认生成的配置文件为Doxyfile。man手册中没有详细说明选项的意思,这里不妨猜测一下,-s为simple,-g为generate,如果不指定-s,则生成的配置文件大约为63KB,行数约1500左右;反之,则约成10KB,行数约250左右。——此处猜测便根据这些测试而来的。
2、生成配置文件后,会出现提示信息,大意是说那个配置文件已经生成了,现在编辑它,之后输入doxygen Doxyfile(经实践证明,可以只输入doxygen命令)就可以产生工程的文档了。如果再次使用doxygen生产配置文件,则原来的就配置文件就变成了备份文件,添加后缀名.bak。
3、根据doxygen要求的注释格式来编写代码的注释,这一步要求比较高,而且工作量比较大。我们在文章后面还要讲解的。
下面介绍一下如何编辑生成的配置文件,我们以我们的串口程序为例子。
doxygen的配置文件与大多数linux平台的配置文件类似,就是一些关键字与值,配置文件中的值以YES和NO居多。
DOXYFILE_ENCODING = UTF-8,默认编码为UTF-8,这样可以支持中文。
PROJECT_NAME = "SerialPort",项目名称,多个单词需要使用引号(“”)。
PROJECT_NUMBER = "1.0 beta",项目版本号。
OUTPUT_DIRECTORY = serialport-html,输出文档的目录,如果为空,表示在当前目录,建议写上表示本工程的有意义的目录名称,比如我们就指定目录名称为serialport-html。
OUTPUT_LANGUAGE = English,文档语言,可以指定为Chinese。
IMAGE_PATH = image_dir,指定图片存放的目录,我们将图片放到当前目录下的image_dir目录中,因为我们的文档会出现测试图片示例。
HTML_OUTPUT= . ,html输出目录名称,默认为html目录,如果为“.”则表明为上述OUTPUT_DIRECTORY目录。
GENERATE_LATEX = NO,是否生成LaTeX,默认生成的,但我们不想生成。
好了,我们需要修改的就这么多,使用上述第2步骤的命令就可以生成一个漂亮的文档了。此外还有一些常用的设置选项。
INPUT =xxx,代码文件或目录,多个文件(目录)需要以空格隔开,如果不指定,表示当前目录,但是,如果指定目录且当前目录有代码文件的话,需要使用点号(“.”)表示当前目录。
FILE_PATTERNS=xxx,指定各种文件,我们常用为*.cpp *.c *.h,等等。
上面基本就是我们常用的了,如果还想更深入了解,请移步到google网站。
下面就是真正需要花费一定时间的工作:为我们的程序作特定格式的注释。
doxygen支持多种注释风格,比如JavaDoc风格,它在C语言块注释开始处再添加一个星号(*)构成,如下:
1. /**
2. * ... text ...
3. */
Qt风格:
1. /*!
2. * ... text ...
3. */
上面两种方式中间的星号(*)是可选的,不过,个人认为添加会更美观一些。
C++风格的,——就是在C++注释后面再添加“/”:
1. ///
2. /// ... text ...
3. ///
或者是这样:
1. //!
2. //!... text ...
3. //!
经测试,实际使用中,如果是单行注释的话,可以使用如下的格式:
1. /** ... text ... */
2. /**< ... text ... */
这些格式会被doxygen文档化,如果不想让它文档化,可以“破坏”这些格式,比如可以使用“正宗”的C/C++注释:
1. /* ... text ... */
2. // ... text ...
上述风格来自doxygen的manual页面,具体地址为:
http://www.stack.nl/~dimitri/doxygen/docblocks.html
下面介绍一下常用doxygen的命令,更多详细使用说明,请参考如下地址:
http://www.stack.nl/~dimitri/doxygen/commands.html#cmde
doxygen命令以@或\开始,两种方式均可以。文中以@标记之。
@def 宏定义说明
@fn 函数 函数说明
@param 参数 参数说明
@return 返回值说明(出错返回什么值,等等)
@file 文件名
@author 作者
@version 程序版本
@date 日期
@note 注解(注意事项,等)
@warning 警告信息
@bug bug信息
@test 测试示例、信息
@todo 一些未完事宜
(@bug、@test以及@todo等会出现链接页面)
上面这样适合在函数、文件前面出现。
下面为生成特殊字体的命令:
@a @e @em:其后的单个字(word)表现为斜体,以强调作用。如有多个word的话,使用<em>xxx xxx</em>代替。
@b:其后的word为粗体,多个则使用<b>xxx xxx</b>。
@c @p:字体表现为打印机字体,多个则使用<tt>xxx xxx</tt>。
下面是一些具体的实例。
在文件开始处的版权声明及其它信息:
/**
* Copyleft (C) 2010 Late Lee
* This program is tested on LINUX PLATFORM, WITH GCC 4.x.
* The program is distributed in the hope that it will be
* useful, but WITHOUT ANY WARRANTY. Please feel free to
* use the program, and I feel free to ignore the related
* issues. Any questions or suggestions, or bugs, please
* contact me at or e-mail to
* if you want to do this.
* @file serialport.c
* @author Late Lee
* @date Mon Jan 10 2011
*
* @brief Some utils of the serial port, such as open the port, close
* the port and setup the port.
* @note This is a note.
* @warning This is a warning.
* @bug This is a bug.
*/
在函数前的注释:
/**
* open_port - Open a serial port
*
* @param port : The port number, eg, open_port(1) will open com1
*
* @return Return fd if success, otherwise will return -1 with some msg.
*/
定义宏使用的注释:
/**
* @def error_exit
* @brief A macro that prints the @a error msg and exit.
*/
#define error_exit(error) \
do{ \
fprintf(stderr, "%s\n", error); \
exit(0); \
} while(0)
doxygen的简单使用(快速上手)的更多相关文章
- Sass简单、快速上手_Sass快速入门学习笔记总结
Sass是世界上最成熟.稳定和强大的专业级css扩展语言 ,除了Sass是css的一种预处理器语言,类似的语言还有Less,Stylus等. 这篇文章关于Sass快速入门学习笔记. 资源网站大全 ht ...
- echarts简单用法快速上手
1.html结构 简单说就是一个标签一个图表:2.初始化:var myEcharts = echarts.init(document.getElementById("xxx")): ...
- 简单layer 快速上手
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Ansible 快速上手(转)
add by zhj: 执行Ansible(发音时,重音在最前面)命令有两种方式,一种是ad-hoc形式,另一种是playbooks,对于软件开发者来说,一般使用ad-hoc就足够了.playbook ...
- Ansible 快速上手
Ansible优点: 充分利用现有设施.使用 Ansible 无需安装服务端和客户端,只要 SSH 即可.这意味着,任何一台装有 Ansible 的机器都可以成为强大的管理端.我觉得,这种去中心化的思 ...
- 01_MySQL从下载—>安装—>到快速上手
一.MySQL下载 二.MySQL安装 三.MySQL几条简单命令快速上手(增删改查) 一.MySQL下载与安装 下载地址:https://dev.mysql.com/downloads/mysql/ ...
- 快速上手seajs——简单易用Seajs
快速上手seajs——简单易用Seajs 原文 http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...
- 【Python五篇慢慢弹】快速上手学python
快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...
- 快速上手Unity原生Json库
现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...
- Objective-C快速上手
最近在开发iOS程序,这篇博文的内容是刚学习Objective-C时做的笔记,力图达到用最短的时间了解OC并使用OC.Objective-C是OS X 和 iOS平台上面的主要编程语言,它是C语言的超 ...
随机推荐
- 安装expect命令 两种方式
yum安装 yum -y install expect 手动安装 expect以及tcl版本 #!/bin/bash oldpath=`pwd` tar -zxf tcl8.4.20-src.tar. ...
- ubuntu 12.04下apache 配置家目录地址
apache2 最在搞前端相关的东西,上一次也记录了 Linux 下 LAMP环境的搭建,现在记录一下如果改变 apache2 的家目录地址该怎么做,改那个配置文件 修改配置文件 /etc/apach ...
- Android基础总结(二)布局,存储
常见布局 相对布局 RelativeLayout 组件默认左对齐.顶部对齐 设置组件在指定组件的右边 android:layout_toRightOf="@id/tv1" 设置在指 ...
- js 去掉数组中重复的对象
function deteleObject(obj) { // console.log(obj) var uniques = []; var stringify = {}; ; i < obj. ...
- SQL Server 数据库同步,订阅、发布、复制、跨服务器
随便说两句 折腾了一周,也算把数据库同步弄好了.首先局域网内搭建好,进行各种测试,弄的时候各种问题,弄好以后感觉还是挺简单的.本地测试好了,又在服务器进行测试,主要的难点就是跨网段同步,最后也解决了, ...
- JSONObject与JSONArray
最近在学习过程中用到了稍微复杂点的json数据需要将json数据解析出来,这里就截取一部分作为例子 1.JSONObject介绍 JSONObject-lib包是一个beans,collections ...
- 按SCI影响因子排序的前50人工智能期刊列表
附录二:按SCI影响因子排序的前50人工智能期刊列表 出版物名称,影响因子 IEEE TRANSACTIONS ON FUZZY SYSTEMS, 6.701 International Jou ...
- Spring Cloud体系介绍
上图只是Spring Cloud体系的一部分,Spring Cloud共集成了19个子项目,里面都包含一个或者多个第三方的组件或者框架! Spring Cloud 工具框架 1.Spring Clou ...
- 如何在ChemDraw中缩短双键长度
双键是化学绘图软件ChemDraw在绘制化学图形的过程中会遇到各种各样的化学结构.而双键就是一种常见的化学基础结构,有的用户希望自己绘制的图形更加的美观,希望可以调整双键的长度并且不影响到其他的结构. ...
- 数据驱动ddt
在设计用例的时候,有些用例操作过程是一样的,只是参数数据输入的不同,如果用例重复的去写操作过程会增加代码量,对于这种多组数据的测试用例,可以使用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载 ...