Doxygen使用教程(个人总结)
DOXYGEN代码文档生成工具的使用

本文档旨在介绍 doxygen 的使用及统一代码注释,编写出符合 doxygen 要求的良好的代 码注释风格,并可以利用 doxygen 生成代码文档,提高后续维护人员维护代码的难度,并提 高代码的可读性。
本文档为基于《郑州云涌嵌入式程序规范第一版.doc》,不涉及变量命名、缩进等要求, 仅涉及注释部分的格式,指出统一风格的 Doxygen 可识别的注释格式,作为其补充和修订。
* @details
* @param[in] RTCxRTC peripheral selected, should be LPC_RTC
* @param[in] NewState New State of this function, should be:
*
- ENABLE: The time counters are enabled
可以看到程序清单 4.1 中的注释比我们通常写的代码注释多了些以“ @”开头的标记, 正是这些标记告诉 Doxygen 如何提取文档以及如何组织文档结构的。下面对这段注释进 行解释。
4.1.1 有效注释 “ /**”表示要求 Doxygen 处理这段注释,否则如果写成“ /*”或“ /****” 之类这段注释就会被忽略掉。这样就可以控制哪些注释要出现在文档中供用户阅读,哪 些注释仅仅是给代码编写者或维护者阅读。 4.1.2 定义模块 第 2 行的“ @defgroup”表示定义一个模块,语法是“ @deup RTC 实时时钟”定义了一个名为“实时时钟”的模块。模块 id 为“RTC” 模块 ID 必须使用英文,这个 ID 的作用是区分不同模块,并可供其他模块或注释引用。 下面一行是对“ RTC”模块的说明。 4.1.3 加入到模块 第 7 行“ @ingroup RTC”表示把这个注释块加入到模块“RTC”中。 4.1.4 函数注释
Doxygen中文使用

Doxygen中⽂使⽤Doxygen中⽂使⽤以下对Doxygen的使⽤分为三个部分:⼀.⽣成基本的中⽂注释⽂档;⼆.添加函数关系调⽤图;三.⽣成全中⽂的chm⽂档。
⼀.⽣成基本的中⽂注释⽂档:(⼀) Wizard(1) Wizard->ProjectProject name:⽣成的Doxygen注释⽂档的名称;Project synopsis:⽣成的Doxygen注释⽂档的简介;Project version or id:注释⽂档版本号;Project logo:⽂档图标;Source code directory:代码路径,也就是需要⽣成注释⽂档的代码所在的⽂件夹;Destination directory:⽣成的注释⽂档存放的地⽅。
(2) Wizard->Mode若勾选上Include cross-referenced source code in output,则⽣成的Doxygen⽂档会包含相应头⽂件的源代码。
(3) Wizard->Outputplain HTML:⽣成平铺形式的页⾯;with navigation panel:⽣成带有左侧导航栏形式的页⾯;prepare for compressed HTML(.chm):准备⽣成chm⽂件。
(4) Wizard->Diagrams若不⽣成函数调⽤关系图,默认即可。
(⼆) Expert(1) Expert->Project在OUTPUT_LANGUAGE⼀栏中选择输出语⾔为Chinese。
(2) Expert->Input在INPUT_ENCODING⼀栏中,输⼊GB2312,这样对⽂档的注释才⽀持中⽂,否则中⽂注释将会是乱码。
在完成上诉配置后,在Run选项卡中点击Run doxygen,即可⽣成能够⽀持中⽂注释的⽂档。
⼆.填加函数关系调⽤图:(⼀) Expert->Dot勾选HAVE_DOT、CALL_GRAPH、CALLER_GRAPH选项,并在DOT_PATH中添加graphviz安装⽬录下的bin⽂件夹。
C++ doxygen讲解

模块定义(单独显示一页 )
模块定义格式:
/** * @defgroup 模块名 页的标题名 * @{ 跟c语言{一样起作用域功能. */ … 定义的内容 … /** @} */
模块名只能英文,这个可以随便取.在 一个源文件里不能相同.
例:
/** * @defgroup aa ebookmain.c * @{ */ … 定义的内容 … /** @} */
变量、宏定义、类型定义注释风格类似。 格式: /** 简要说明文字 */ 变量(宏定义或类型定义)
如: /** 简要说明文字 */ #define FLOAT float
/** „*/这是固定格式,还要注意/**这 2个“**”不能少也不能多。其他注释风 格也是这样的。
“@brief ”是注释指令, “@”也 可以用”\”.
武汉中心项目部培训
文档生成工具
Doxygen注释风格
Doxygen指令目的为了生成更丰富与可读性更强的文档。所 以总结5类常用的注释风格说明。
●变量、宏定义、类型定义。
●枚举类型定义、结构体类型定义类似。
●函数定义。 ●模块定义(单独显示一页
)。 ●分组定义(在一页内分组显示)。
变量、宏定义、类型定义简要说明
pre 指令操作符讲解
pre:指定函数前置条件指令操作符 pre格式如下: @pre 简要说明
例: /** *文件关闭函数 * @param file文件编号。 * @retval 0 表示成功 * @retval -1 表示失败 * @pre file 变量必须使用OpenFile 返回值 */ int CloseFile(int file);
code、endcode指令操作符讲解
doxygen使用总结

doxygen使⽤总结doxygen[功能]为许多种语⾔编写的程序⽣成⽂档的⼯具。
[举例]*⽣成⼀个模板配置⽂件,模板⽂件中有详细的注释:$doxgen -g test这样,会⽣成⼀个test⽂件,1500多⾏,可以把这个⽂件做为模板编写配置⽂件。
如果之前有test那么会将原来的test备份为test.bak.模板⽂件的部分内容如下:...前⾯的内容省略...DOXYFILE_ENCODING = UTF-8# The PROJECT_NAME tag is a single word (or a sequence of words surrounded# by quotes) that should identify the project.PROJECT_NAME =# The PROJECT_NUMBER tag can be used to enter a project or revision number.# This could be handy for archiving the generated documentation or# if some version control system is used.PROJECT_NUMBER =# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)# base path where the generated documentation will be put.# If a relative path is entered, it will be relative to the location# where doxygen was started. If left blank the current directory will be used.OUTPUT_DIRECTORY =...后⾯的内容省略...*⽣成⼀个模板配置⽂件,模板⽂件中只有简单的注释:$doxygen -s -g test这⾥,我尝试并且⽐较过,如果使⽤⽣成的⽂件只200多⾏,⼏乎没有注释,只有⼏⾏分类的注释,去除了多余的注释。
Doxygen使用教程(个人总结)

简介Doxygen一.什么是Doxygen?Doxygen 是一个程序的文件产生工具,可将程序中的特定批注转换成为说明文件。
通常我们在写程序时,或多或少都会写上批注,但是对于其它人而言,要直接探索程序里的批注,与打捞铁达尼号同样的辛苦.大部分有用的批注都是属于针对函式,类别等等的说明。
所以,如果能依据程序本身的结构,将批注经过处理重新整理成为一个纯粹的参考手册,对于后面利用您的程序代码的人而言将会减少许多的负担.不过,反过来说,整理文件的工作对于您来说,就是沉重的负担。
Doxygen 就是在您写批注时,稍微按照一些它所制订的规则。
接着,他就可以帮您产生出漂亮的文档了。
因此,Doxygen 的使用可分为两大部分。
首先是特定格式的批注撰写,第二便是利用Doxygen的工具来产生文档。
目前Doxygen可处理的程序语言包含:•C/C++•Java•IDL (Corba, Microsoft及KDE-DCOP类型)而可产生出来的文档格式有:•HTML•XML•LaTeX•RTF•Unix Man Page而其中还可衍生出不少其它格式。
HTML可以打包成CHM格式,而LaTeX可以透过一些工具产生出PS或是PDF文档。
二.安装Doxygen•1。
1 安装 Doxygen 1。
7。
4(Windows)•1。
2 安装 graphviz 2。
28。
0(Windows)graphviz 是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形.Doxygen 使用 graphviz 自动生成类之间和文件之间的调用关系图,如不需要此功能可不安装该工具包。
•1。
3 安装 Windows Help Workshop 1。
32Doxygen 使用这个工具可以生成 CHM 格式的文档。
三.Doxygen的配置Doxygen 产生文档可以分为三个步骤.一是在程序代码中加上符合Doxygen所定义批注格式。
二是使用Doxywizard进行配置。
doxygen配置及使用手册

Doxygen安装及使用手册一简介Doxygen可以从C,C++,java等源代码中提取消息来生成帮助文档,API资料等二下载Doxygen以下,是在linux平台下的demo介绍。
http://www.stack.nl/~dimitri/doxygen/index.htmldoxyen主页去下载doxygen-1.5.5.src.tar.gz三 Doxygen安装安装doxygen-1.5.5.src.tar.gz1 把下载好的doxygen-1.5.5.src.tar.gz拷到自己想要的目录中,我放到了自己的Home目录下。
2 进入相应的目录:本例是在自己的home目录下3 解压#tar -zxvf doxygen-1.5.5.src.tar.gz会在当前目录下生成一个名字为doxygen-1.5.5的目录。
4 在自己的Home目录下建立一个doxygen目录,我们的doxygen以后就安装到这个目录下。
#mkdir doxygen5 进入doxygen-1.5.5目录#cd doxygen-1.5.56 安装:用—prefix选项制定安装目录为/home/lvq/doxygen,lvq为我的用户名,这里可以用~/doxygen代替。
#./configure –prefix ~/doxygen#make#make install这样在~/doxygen 目录就安装好了doxygen软件7 生成配置文件#cd ~/doxygen/bin/# ./doxygen –g 文件名执行这个命令后就会生成一个制定名字的配置文件,这里我们不加文件名,只用./doxygen –g 生成默认配置文件Doxyfile。
四如何使用DoxygenDoxygen可以从源代码中提取消息生成帮助文档,它是根据源代码中的特定注释来实现。
所以,首先要给工程代码书写符合Doxygen格式的注释。
1 以sipproxy小工程为例1)这个工程在/home/lvq/self/sipproxy1/sipproxy-v1.04/目录下。
linuxdoxygen使用说明
linuxdoxygen使用说明目录1.安装doxygen (2)2.配置Doxygen工作环境 (2)3.程序源码文档化 (3)4.程序文档生成 (4)5.Doygen 集成到codeBlocks (4)5.1配置步骤 (4)5.2使用: (4)1. 安装doxygen安装包doxygen-1.7.4.linux.bin.tar.gz命令:1)tar xvfz doxygen-1.7.4.linux.bin.tar.gz2)cd doxygen-1.7.43)./configure4)make5)make install安装后需留意下doxyg的路径,例如:/usr/bin/doxygen2. 配置Doxygen工作环境步骤:6)进入项目目录(test为例说明)cd test/7)生成配置文件Doxygen –g●默认生成的配置文件名为"Doxyfile",也可以采用"doxygen -g your-cfg-filename" 命令格式指定所生成的配置文件名。
如无特殊需要,采用默认的配置文件名即可。
●Doxyfile 文件内容非常多,大概1000 多行,不过其中约4/5 都是注释,每个配置选项都有一段详细的注释。
日后,如果对Doxygen 各配置选项的意义有一定了解,可以在生成配置文件的命令中添加"-s"选项,生成不含注释的配置文件,操作如下:$ doxygen -s -g3)配置文件的相应设置,这里已经有个模板Doxyfile(test文件夹下),可以根据需要更改相应设置# 项目名称,将作为于所生成的程序文档首页标题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 = YESREFERENCES_RELATION = YESREFERENCES_LINK_SOURCE = YES# 不生成latex 格式的程序文档GENERATE_LATEX = NO# 在程序文档中允许以图例形式显示函数调用关系,前提是你已经安装了graphviz 软件包HAVE_DOT = YESCALL_GRAPH = YESCALLER_GRAPH = YES#让doxygen从配置文件所在的文件夹开始,递归地搜索所有的子目录及源文件RECURSIVE = YES#在最后生成的文档中,把所有的源代码包含在其中SOURCE BROWSER = YES$这会在HTML文档中,添加一个侧边栏,并以树状结构显示包、类、接口等的关系GENERATE TREEVIEW =ALL3. 程序源码文档化准备好Doxygen 的工作环境后,就需要根据Doxygen 所定义的注释规则,对程序源码进行文档化。
DOXYGEN简明实用教程
DOXYGEN 简明实用教程DOXYGEN 简明实用教程1.所有注释都可以使用III开始(C++风格)。
2•类体前必须加上///描述,否则会产生警告【Compound 类名is not documented】描述中最好不要带有此类的类名,否则会产生两个链接(但指向同一个文件)影响美观。
3.public 和protected 会自动生成,但是private 要在Expert 的Build 选项里勾中EXTRACT_PRIV ATE,static 成员也是如此。
4.函数注释方式III Constructor 【函数描述】III @param [in] pos The position of Camera in world coordinate 【参数描述 1 】III @param [in] lookat The point Camera looks at in world coordinate 【参数描述2】BaseCamera( const D3DXVECTOR3& pos, constD3DXVECTOR3& lookat );5. 变量注释方式D3DXVECTOR3 m_Position; I*!< Camera position point in world coordinate *I 或D3DXVECTOR3 m_Position; III< Camera position point in world coordinate两种方式产生的结果不同。
前者会单独产生一块Member DataDocumentation 注释,后者会在Pubilc/Protected/Private Attributes 变量描述后紧跟注释。
6.@参数和参数相同7.产生描述顺序和注释顺序相同,一般风格为lll 函数描述lll @param 参数描述lll @return 返回值描述lll @retval 返回值 1 返回值 1 描述lll @retval 返回值 2 返回值 2 描述lll @remarks 注意事项Ill @note 注意事项,功能同@remarks,显示字样不同/// @par 自定义图块,后面可跟示例代码之类Ill @code(必须使用@endcode结束)lll 示例代码(无需缩进)lll @endcodelll @see 其他参考项【产生指向参考的链接】函数代码声明8.特殊符号lll - 产生一个黑色圆点9.定义在类体里面的enumlll Camera typesenum CAMERA_TYPECAMERA_FIRST_VIEW,l*!< Camera that looks from thefirst view */CAMERA_MODEL_VIEW,///< Camera that looks from the third view};两种风格相同。
doxygen讲解
向导(Wizard)对话框----Output相关选项
生成普通模式的HTML 生成文件列表格的HTML
生成chm文件格式的HTML, 因此,就选这个.
附带查找功能,一般不选择. 这项没用到,因此把它选择 取消. 这三项不要选择
向导(Wizard)模式
向导(Wizard)对话框----Diagrams相关选项
注:不文档化局部变量,只文档化全局变量。
枚举类型定义、结构体类型定义
枚举类型定义、结构体类型定义注释风格类似。 格式: 类型:enum ,struct
/** 简要说明文字 */ typedef 类型 结构体名字 { 成员1, /**< 简要说明文字 */ 成员2, /**< 简要说明文字 */ 成员3, /**< 简要说明文字 */ }结构体别名;
专家(Expert)模式
专家(Expert)对话框----Dot相关选项
可以选上UML_LOOK、CALL_GRAPH和 CALLER_GRAPH。CALL_GRAPH是本函 数调用其它函数的示意图.效果如: 图3.
图3
Doxygen注释风格
Doxygen指令目的为了生成更丰富与可读性更强的 文档。所以总结5类常用的注释风格说明。
附带操作
为了方便运行Doxygen工具与管理.为每个模块创 建一文件夹(如:“TEST”),在TEST文件夹里再创建src、 doc文件夹。Src文件夹存放源文件,doc文件夹存放 Doxygen输出文件。顺便把doxygenWD.bat和Doxygen 配置文件“Doxyfile” 拷贝到doc文件夹下,如果要生 成文档就双击doxygenWD.bat即可。(模块的目录结构 TEST 如下 )
Doxygen 快速入门
Java有好用的JavaDoc文档生成工具,那么C++有没有呢?有,这就是大名鼎鼎的Doxygen,开源,功能强大,支持非常多的编程语言。
1.安装和配置首先下载Doxygen1.5.6,然后下载graphviz‐2.18,安装。
运行Doxywizard,开始配置。
单击Wizard按钮,会弹出对话框,输入项目名,这个名字会作为文档的大标题,输入版本,也会出现在文档中,然后输入源代码的根目录,勾选”Scan recursively”,输入文档输出路径。
如图1所示:图1单击Mode标签,不做任何改动,保持默认。
单击Output标签,去掉”LaTex”,选择“prepare for compressed HTML(.chm)”,因为输出chm比较方便,只有一个文件就包含所有文档,不向html会有一堆的文件。
如图2所示:图2单击Diagrams标签,如果已经安装了GraphViz,则保持默认,如果没安装,则选择“Use built‐in class diagram generator”就足够,如图3所示:图3点击OK,返回。
单击Expert按钮,会弹出一个有更多标签页的对话框,在"Project"标签页下,将OUTPUT_LANGUAGE设置为Chinese,因为我需要生成中文文档,如图4所示:图4单击"Input"标签,将INPUT_ENCODING保持默认的utf‐8,因为我用的是Visual Studio 源代码文件的编码默认就是utf‐8。
如图5所示:如果你有洁癖,你可以耐心的将FILE_PATTERNS下的后缀一个一个删掉(用记事本打开配置文件,搜索”FILE_PATTERNS”,一下可以删除一片,免去你点鼠标点到食指抽筋之苦),只留下*.h、*.hpp、*.c、和*.cpp等,意思是只扫描C++头文件和源文件,如图6所示:图6下拉滚动条,会有EXCLUDE和EXCLUDE_PATTERNS表示不要进行解析的目录和文件,即工程目录下有的目录不需要进行文档化(比如测试代码),就用这两个排除掉。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简介Doxygen一.什么是Doxygen?Doxygen 是一个程序的文件产生工具,可将程序中的特定批注转换成为说明文件。
通常我们在写程序时,或多或少都会写上批注,但是对于其它人而言,要直接探索程序里的批注,与打捞铁达尼号同样的辛苦。
大部分有用的批注都是属于针对函式,类别等等的说明。
所以,如果能依据程序本身的结构,将批注经过处理重新整理成为一个纯粹的参考手册,对于后面利用您的程序代码的人而言将会减少许多的负担。
不过,反过来说,整理文件的工作对于您来说,就是沉重的负担。
Doxygen 就是在您写批注时,稍微按照一些它所制订的规则。
接着,他就可以帮您产生出漂亮的文档了。
因此,Doxygen 的使用可分为两大部分。
首先是特定格式的批注撰写,第二便是利用Doxygen的工具来产生文档。
目前Doxygen可处理的程序语言包含:∙C/C++∙Java∙IDL (Corba, Microsoft及KDE-DCOP类型)而可产生出来的文档格式有:∙HTML∙XML∙LaTeX∙RTF∙Unix Man Page而其中还可衍生出不少其它格式。
HTML可以打包成CHM格式,而LaTeX可以透过一些工具产生出PS或是PDF文档。
二.安装Doxygen∙ 1.1 安装 Doxygen 1.7.4(Windows)∙ 1.2 安装 graphviz 2.28.0(Windows)graphviz 是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。
Doxygen 使用 graphviz 自动生成类之间和文件之间的调用关系图,如不需要此功能可不安装该工具包。
1.3 安装 Windows Help Workshop 1.32Doxygen 使用这个工具可以生成 CHM 格式的文档。
三.Doxygen的配置Doxygen 产生文档可以分为三个步骤。
一是在程序代码中加上符合Doxygen所定义批注格式。
二是使用Doxywizard进行配置。
三是使用Doxygen来产生批注文档。
Doxygen 1.7.4主界面如下图 1所示。
说明:1,Doxygen 工作目录,就是用来存放配置文件的目录。
2,递归搜索源文件目录需要选上。
选择wizard 标签下的Output Topics相关配置说明如下图 2所示。
相关配置说明如下图 3所示。
说明:如果选择这个选项之前需要先安装了 Graphviz 工具包。
选择 expert 标签下的 Project Topics相关配置说明如下图 4所示。
说明:编码格式,UT F-8是首选。
如果需要显示中文则选择GB2313.TAB_SI ZE主要是帮助文件中代码的缩进尺寸,譬如@c ode和@endcode段中代码的排版,建议设置成4。
OPTIMIZE_OUTPUT_FOR_C这个选项选择后,生成文档的一些描述性名称会发生变化,主要是符合C习惯。
如果是纯C代码,建议选择。
SU BGROUPING这个选项选择后,输出将会按类型分组。
选择 expert 标签下的 BuildBuild页面,这个页面是生成帮助信息中比较关键的配置页面:EXT RACT_ALL 表示:输出所有的函数,但是private和static函数不属于其管制。
EXT RACT_PRIVATE 表示:输出private函数。
EXT RACT_STATIC 表示:输出s tatic函数。
同时还有几个E XT RACT,相应查看文档即可。
HIDE_UNDOC_MEMBERS 表示:那些没有使用doxygen格式描述的文档(函数或类等)就不显示了。
当然,如果E XT RACT_ALL 被启用,那么这个标志其实是被忽略的。
INTERNAL_DOCS 主要指:是否输出注解中的@internal部分。
如果没有被启动,那么注解中所有的@internal部分都将在目标帮助中不可见。
CASE_SEN SE_NAMES 表示:是否关注大小写名称,注意,如果开启了,那么所有的名称都将被小写。
对于C/C++这种字母相关的语言来说,建议永远不要开启。
HIDE_SCOPE_NAMES 表示:域隐藏,建议永远不要开启。
SHO W_INCLUDE_FILES 表示:是否显示包含文件,如果开启,帮助中会专门生成一个页面,里面包含所有包含文件的列表。
INLINE_INFO:如果开启,那么在帮助文档中,inline函数前面会有一个inline修饰词来标明。
SORT_MEMBER_DOCS :如果开启,那么在帮助文档列表显示的时候,函数名称会排序,否则按照解释的顺序显示。
GENE RATE_TODOLIST:是否生成TODOLIST页面,如果开启,那么包含在@todo注解中的内容将会单独生成并显示在一个页面中,其他的GENE RATE选项同。
SHO W_USED_FILES :是否在函数或类等的帮助中,最下面显示函数或类的来源文件。
SHO W_FILE S :是否显示文件列表页面,如果开启,那么帮助中会存在一个一个文件列表索引页面。
选择 expert 标签下的 Input Topics相关配置说明如下图 5所示。
说明:输入的源文件的编码,要与源文件的编码格式相同。
如果源文件不是U TF-8编码最好转一下。
选择 expert 标签下的 HTML Topics相关配置说明如下图 6所示。
说明:1,CHM_FILE文件名需要加上后缀(xx.c hm)。
2,如果在 Wizard 的 O utput Topics中选择了 prepare for c ompressed HTML (.c hm)选项,此处就会要求选择 hhc.e xe 程序的位置。
在 windows help works hop 安装目录下可以找到 hhc.exe。
3,为了解决DoxyGen生成的CHM文件的左边树目录的中文变成了乱码,CHM_INDEX_ENCODING中输入GB2312即可。
4,GENERATE_CHI表示索引文件是否单独输出,建议关闭。
否则每次生成两个文件,比较麻烦。
5,TOC_EXPAND 表示是否在索引中列举成员名称以及分组(譬如函数,枚举)名称。
选择 Run 标签相关配置说明如下图 7所示。
点击 Run doxygen 按钮, Doxygen 就会从源代码中抓取符合规范的注释生成你定制的格式的文档。
四.撰写正确格式的批注并非所有程序代码中的批注都会被Doxygen 所处理。
您必需依照正确的格式撰写。
原则上,Doxygen 仅处理与程序结构相关的批注,如Function,Class ,档案的批注等。
对于Function内部的批注则不做处理。
Doxygen可处理下面几种类型的批注。
JavaDoc类型:/*** ... 批注 ...*/Qt类型:/*!* ... 批注 ...*/单行型式的批注:/// ... 批注 ...或//! ... 批注 ...要使用哪种型态完全看自己的喜好。
以笔者自己来说,大范围的注解我会使用JavaDoc 型的。
单行的批注则使用"///" 的类型。
此外,由于Doxygen 对于批注是视为在解释后面的程序代码。
也就是说,任何一个批注都是在说明其后的程序代码。
如果要批注前面的程式码则需用下面格式的批注符号。
/*!< ... 批注 ... *//**< ... 批注 ... *///!< ... 批注 ...///< ... 批注 ...上面这个方式并不适用于任何地方,只能用在class 的member或是function的参数上。
举例来说,若我们有下面这样的class。
class MyClass {public:int member1 ;int member2:void member_function();};加上批注后,就变成这样:/*** 我的自订类别说明 ...*/class MyClass {public:int member1 ; ///< 第一个member说明 ...int member2: ///< 第二个member说明 ...int member_function(int a, int b);};/*** 自订类别的member_funtion说明 ...** @param a 参数a的说明* @param b 参数b的说明** @return 传回a+b。
*/int MyClass::member_function( int a, int b ){return a+b ;}当您使用Doxygen 产生说明文档时,Doxygen 会帮您parsing 您的程式码。
并且依据程序结构建立对应的文件。
然后再将您的批注,依据其位置套入于正确的地方。
您可能已经注意到,除了一般文字说明外,还有一些其它特别的指令,像是@param及@return 等。
这正是Doxygen 另外一个重要的部分,因为一个类别或是函式其实都有固定几个要说明的部分。
为了让Doxygen 能够判断,所有我们就必需使用这些指令,来告诉Doxygen 后面的批注是在说明什么东西。
Doxygen 在处理时,就会帮您把这些部分做特别的处理或是排版。
甚至是制作参考连结。
首先,我们先说明在Doxygen 中对于类别或是函数批注的一个特定格式。
/*** class或function的简易说明...** class或function的详细说明...* ...*/上面这个例子要说的是,在Doxygen 处理一个class 或是function注解时,会先判断第一行为简易说明。
这个简易说明将一直到空一行的出现。
或是遇到第一个"." 为止。
之后的批注将会被视为详细说明。
两者的差异在于Doxygen 在某些地方只会显示简易说明,而不显示详细说明。
如:class 或function的列表。
另一种比较清楚的方式是指定@brief的指令。
这将会明确的告诉Doxygen,何者是简易说明。
例如:/*** @brief class或function的简易说明...** class或function的详细说明...* ...*/除了这个class 及function外,Doxygen 也可针对档案做说明,条件是该批注需置于档案的前面。
主要也是利用一些指令,通常这部分注解都会放在档案的开始地方。
如:/*! \file myfile.h\brief 档案简易说明详细说明.\author 作者信息*/如您所见,档案批注约略格式如上,请别被"\" 所搞混。
其实,"\" 与"@" 都是一样的,都是告诉Doxygen 后面是一个指令。