利用doxygen生成说明文档(支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#)
2013-06-22 17:41
791 查看
1.安装和配置(windows下)
首先下载最新版Doxygen我这里是1.8.4,然后下载graphviz并安装,我这里是2.30.1,安装。运行Doxywizard,开始配置。
要使用doxygen生成漂亮的调用关系图,那就必须安装下图形生成工具graphviz软件,要通过html生成chm文档,那就要用htmlhelp软件了,我想已经说明了三者的关系了,哦,至于doxygen做什么,生成html文档或其他格式的文档软件.
首先下载三个软件,均下载windows下的安装包,
地址如下:
doxygen:http://sourceforge.net/projects/doxygen/
Graphviz :http://www.graphviz.org/Download..php 记得选择windows下的版本哟
“Stable
and development Windows Install packages”
htmlhelp:http://www.softpedia.com/get/Authoring-tools/Help-e-book-creators/HTML-Help-Workshop.shtml
首先安装Graphviz ,再安装doxygen,安装没什么,一路next就ok了
2.使用
运行doxygen的步骤和基本界面如下图,在输入Working Directory中一般输入源代码的根目录,主要是因为配置的一些选项中有的可以用相对路径,这个就可以作为相对路径的参照点。下面选C++
单击Output标签,去掉”LaTex”,选择“prepare for compressed HTML(.chm)”,因为输出chm比较方便,只有一个文件就包含所有文档,不像html会有一堆的文件。
单击Expert按钮,会弹出一个有更多标签页的对话框,在"Project"标签页下,将OUTPUT_LANGUAGE设置为Chinese,因为我需要生成中文文档
程序的源代码采用的是GB2312的格式存储的,而Doxygen输出的文档是UTF-8格式的,出现了乱码。在配置文件中增加了一行代码:
EXPERT选项INPUT面板中设置 INPUT_ENCODING = GB2312
这下问题解决了,Doxygen在生成文档时自动将文件的编码从GB2312转换为UTF-8,输出就没有乱码了。
因为要生成中文chm文件,EXPERT中HTML面板CHM_INDEX_ENCODING 设置为 'GBK' 。
同时在CHM_FILE中输入文件名作为要最终生成的chm文件名,这里为PagedLOD.chm,一定要添加扩展名.chm
单击"HTML"标签,勾选“HTML_DYNAMIC_SECTION”,表示要输出chm文件,同时在CHM_FILE输入文件名作为要最终生成的chm文件名,旁边的那个"File.."按钮其实没用。同时点击“HHC_LOCATION”右边的按钮找到chm编译器hhc.exe。
单击“Source Browser”标签,勾选“SOURCE_BROUSER”,这样文档中就会附加一份源码,方便随时查阅
为了生成chm文件,选择编译工具DOT面板中graphviz画图工具,找到exe文件所在目录,一般要到bin目录,图中错误。
单
接下来选择菜单“Save...”按钮保存配置文件,文件名随意,一般配置文件选择后缀为“.cfg”,这个配置好的文件以后可以重复利用,每次点”Load…”装载进来,然后点击”Wizard…”,根据不同的工程,修改工程名字,版本,源代码根目录,文档输出目录就可以了,不用再重复上述配置。
最胡点击run上的run doxygen即可生成所需chm文件。
出现上图时表示成功,单击Show HTML output可以进行查看,生成的网页如下。
在输出目录中可以查看生成的chm文件
因为还未添加任何注释文字,所以仅有文件列表显示,下一节讲述doxygen注释语法。
3、常见问题解决方法
Doxygen中文乱码问题:设置如下:
Expert选项卡-> Project:
DOXYFILE_ENCODING:UTF-8
OUTPUT_LANGUAGE:Chinese
Expert选项卡-> InPut:
INPUT_ENCODING:GB2312
这样生就可以正确生成含有中文的文档了。
相关文章推荐
- 如何在iOS中使用ZXing库(ZXing是一个开源的条码生成和扫描库,开源协议为Apache2.0。它持众多条码格式和语言,比如Java、 C++、 C#、 Objective-C以及Act )
- 如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
- 六种流行的语言---C、C++、python、Java、php、C#比较[转]
- 1、请编写函数foo(int x, int y, int n) 计算:随机生成x个大小为[1,y]的正整数,它们的和为n的概率是多少?语言仅限于PHP、C/C++、Java中的一种。
- java利用Freemarker模板生成格式友好的doc文档(这种方式不支持docx)
- Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结
- Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结
- C、C++、C#、Java、php、python语言的内在特性及区别
- 六种流行的语言---C、C++、python、Java、php、C#比较[转]
- C、C++、python、Java、php、C#六种流行语言大PK
- 六种流行的语言---C、C++、python、Java、php、C#比较[转]
- 六种流行的语言大餐---C、C++、python、Java、php、C#你更喜欢哪一个呢?
- 高性能数据序列化库,可序列化为binary,也可序列化为json,支持C++ java python php objectc 语言,兼容json数据格试,可以互相转换,跨语言交换数据,网络传输,远程调
- C、C++、python、Java、php、C#六种语言连接mysql数据库代码
- 六种流行的语言大餐---C、C++、python、Java、php、C#你更喜欢哪一个呢?
- C、C++、C#、Java、php、python语言的内在特性及区别
- 六种流行的语言大餐---C、C++、python、Java、php、C#你更喜欢哪一个呢?
- 磨刀不误砍材工 - Java的基础语言要素(注释-生成你自己的API说明文档)
- 如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
- 六种流行的语言大餐---C、C++、python、Java、php、C#你更喜欢哪一个呢?