http://blog.csdn.net/lostaway/article/details/6446786

Doxygen 是一个支持 C/C++,以及其它多种语言的跨平台文档生成工具。如同 JavaDoc, doxygen 直接从源文件中提取符合 doxygen 注释规范的注释,生成文档[1]

1、安装

1.1 安装 Doxygen 1.7.4(Windows)

地址:ftp://ftp.stack.nl/pub/users/dimitri/doxygen-1.7.4.windows.bin.zip

1.2 安装 graphviz 2.28.0(Windows)

地址:http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.28.0.msi

graphviz 是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形[2]。Doxygen 使用 graphviz 自动生成类之间和文件之间的调用关系图,如不需要此功能可不安装该工具包。

1.3 安装 Windows Help Workshop 1.32

地址:http://download.microsoft.com/download/0/a/9/0a939ef6-e31c-430f-a3df-dfae7960d564/htmlhelp.exe

这个工具就不多说了,生成 CHM 帮助文档的。 Doxygen 使用它生成 CHM 格式的文档。

2、配置

运行 Doxywizard 开始配置

Doxygen 1.7.4 主界面如下图 1 所示。

说明:

Doxygen 工作目录(1:) 就是用来存放配置文件的目录,别无它用。

选择 wizard 标签下的 Output Topics

相关配置说明如下图 2 所示。

选择 wizard 标签下的 Diagrams Topics

相关配置说明如下图 3 所示。

如果之前安装了 Graphviz 工具包,就可启用该选项。

选择 expert 标签下的 Project Topics

相关配置说明如下图 4 所示。

说明:编码格式,UTF-8 是首选。

选择 expert 标签下的 Input Topics

相关配置说明如下图 5 所示。

说明:

输入的源文件的编码,要与源文件的编码格式相同。如果源文件不是UTF-8编码最好转一下。

选择 expert 标签下的 HTML Topics

相关配置说明如下图 6 所示。

说明:

如果在 Wizard 的 Output Topics 中选择了 prepare for compressed HTML (.chm)选项,此处就会要求选择 hhc.exe 程序的位置。在 windows help workshop 安装目录下可以找到 hhc.exe。

在 Expert 标签中还有超多的选项,需要按自己的要求去定制。个人喜好问题就不再赘述了,大家可以查 doxygen 文档啥的,里面有每个选项的详细介绍。

选择 Run 标签

相关配置说明如下图 7 所示。

点击 Run doxygen 按钮, Doxygen 就会从源代码中抓取符合规范的注释生成你定制的格式的文档。接下来的工作就是学习 doxygen 的注释规范了,参考 《doxygen 快速入门》第 2 节 “常用注释语法”。慢慢的就可以体会到 doxygen 的方便性。

Doxygen 生成 CHM 文档乱码的问题

由于 Windows 的默认编码不是 UTF-8, Doxygen 生成的 CHM文件目录和文件标题栏是乱码。一般解决步骤可以参考《doxygen 快速入门》关于解决目录乱码的问题。这里要补充的一点就是,最好将 index.hhc、index.hhk 、index.hhp都转为 UTF-8格式。这样标题栏啥的也不会是乱码了。

参考

[1] http://zh.wikipedia.org/wiki/Doxygen Wikipedia-doxygen

[2] http://zh.wikipedia.org/wiki/Graphviz Wikipedia-graphviz

[3] http://hi.baidu.com/soulmachine/blog/item/6055ad017a9a1606738da58c.html doxygen 快速入门

附录

补充几张效果图:

(转)Doxygen文档生成工具的更多相关文章

  1. 文档生成工具doxygen+图像生成工具GraphViz

    文档生成工具doxygen+图像生成工具GraphViz 虽然jdk自带的javadoc也很好用,不过使用doxygen+GraphViz 的组合可以生成许多强大的图(类图.协作图.文件包含/被包含图 ...

  2. Doxygen自动文档生成工具在Eclipse中的集成及使用举例

    你有为软件编写说明文档的苦恼吗?当别人甩给你一个庞大的系统,让你根据里面的代码注释理解后写出一份完整的开发文档,你会怎么办?一个个的看代码 然后耗时N天来写吗?这既是一份苦差事也极其耗时,有没有更好的 ...

  3. 使用Objective-C的文档生成工具:appledoc

    使用Objective-C的文档生成工具:appledoc 前言 做项目的人多了,就需要文档了.今天开始尝试写一些项目文档.但是就源代码来说,文档最好和源码在一起,这样更新起来更加方便和顺手.象 Ja ...

  4. 使用Objective-C的文档生成工具

    前言 做项目的人多了,就需要文档了.今天开始尝试写一些项目文档.但是就源代码来说,文档最好和源码在一起,这样更新起来更加方便和顺手.象Java语言本身就自带javadoc命令,可以从源码中抽取文档.今 ...

  5. 【C#附源码】数据库文档生成工具支持(Excel+Html)

    [2015] 很多时候,我们在生成数据库文档时,使用某些工具,可效果总不理想,不是内容不详细,就是表现效果一般般.很多还是word.html的.看着真是别扭.本人习惯用Excel,所以闲暇时,就简单的 ...

  6. 微软开源全新的文档生成工具DocFX

    微软放弃Sandcastle有些年头了,微软最近开源了全新的文档生成工具DocFX,目前支持C#和VB,类似JSDoc或Sphinx,可以从源代码中提取注释生成文档之外,而且还有语法支持你加入其他的文 ...

  7. DBImport v3.44 中文版发布:数据库数据互导及文档生成工具(IT人员必备)

    前言: 距离上一个版本V3.3版本的文章发布,已经是1年10个月前的事了. 其实版本一直在更新,但也没什么大的功能更新,总体比较稳定,所以也不怎么写文介绍了. 至于工作上的事,之前有半年时间跑去学英语 ...

  8. .NET平台开源项目速览(4).NET文档生成工具ADB及使用

    很久以前就使用ADB这个工具来生成项目的帮助文档.功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释.就生成文档来自己看,非常好用.这也是一个学习方法吧 ...

  9. Sandcastle----强大的C#文档生成工具

    最近客户索要产品的二次开发类库文档,由于开发过程中并没有考虑过此类文档,而且项目规范比较,持续时间比较长,经手人比较多,还真是麻烦,如果人工制作文档需要是一个比较大的工程.还好有这个文档生成工具,能够 ...

随机推荐

  1. MS SQL Server 数据库分离-SQL语句

    前言 今天在在清理数据库,是MS SQL Server,其中用到分离数据库文件.在这过程中,出现了一个小小的问题:误将数据库日志文件删除了,然后数据就打不开了,除了脱机,其他操作都报错. 数据库分离 ...

  2. 【Win10开发】响应式布局——AdaptiveTrigger

    接触过Windows10的童鞋已经知道Universal app不仅可以运行在pc上,还可以运行在mobile或者其他平台上.那么这样势必会带来一个问题,如何针对不同屏幕来进行布局适配.所以微软提供了 ...

  3. Python程序高效地调试

    现在我在debug python程序就只是简单在有可能错误的地方print出来看一下,不知道python有没像c++的一些IDE一样有单步调试这类的工具?或者说各位python大神一般是怎么debug ...

  4. 关于大数据企业信息查询的API该怎么写

    最近在看API相关的案例,做的是.net开发的工作 对API开发这块很是迷茫,不知道从哪入手,园子里面的朋友有没有研究这块的给点建议 公司目前准备做一款企业数据查询的网站,让我负责API接口这块,基于 ...

  5. 渡轮问题Ship

    题目描述 Palmia河从东往西流过Palmia国,把整个国家分成南北两半.河的两岸各有N个城市,北岸的每一个城市都与南岸的一个城市互为友好城市,而且任意两个北岸城市的友好城市都不相同.每一对友好城市 ...

  6. visual studio 2015 开发android

    转载请注明: http://www.cnblogs.com/sunyl/p/5493249.html http://www.cnblogs.com/sunyl/ 最近有不少新闻, 甲骨文向谷歌索赔93 ...

  7. swift变量和函数

    func getNums()->(Int,Int){ //swift函数可以返回多个变量 ,) } let (a,b) = getNums() //let是常量,一旦赋值后不可改变, var是变 ...

  8. 类型转换及返回json对象的问题

    @ResponseBody @RequestMapping(value="/user/getUserId.do")//method=RequestMethod.POST publi ...

  9. 第 1 章 jQuery EasyUI 入门

    学习要点: 1.什么是 jQuery EasyUI 2.学习 jQuery EasyUI 的条件 3.jQuery EasyUI 的功能和优势 4.其他的 UI 插件 5.是否兼容低版本 IE 6.下 ...

  10. Spring框架IOC容器和AOP解析

    主要分析点: 一.Spring开源框架的简介  二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面向切面编程(AOP)和事务管理配置  一.S ...