http://www.yuyong.net

doxygen 常见问题一览表(中文乱码等)

下载doxygen的binary 包 为了使doxygen能够将类图、协作图等加入到文档中,还要下载安装graphviz for win。 graphviz 2.18下载: http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-2.18.exe 全部安装后就可以...

下载doxygen的binary 包

为了使doxygen能够将类图、协作图等加入到文档中,还要下载安装graphviz for win。

graphviz 2.18下载:

http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-2.18.exe

全部安装后就可以开始使用了。

运行doxygen wizard.exe

如果你像我一样希望只通过图形界面运行doxygen的话,请在doxygen的bin目录中运行doxywizard.exe,这时按照doxygen根目录下的文档(doxygen_manual-1.5.2.chm)中 Doxywizardusage一节的说明设置即可。主要包括,源码路径、工作路径、输出路径等。

点开始,即可生成文档

最后对文档生成过程中遇到的一些问题进行说明:

1、 中文问题:中文注释在文档中是乱码。

解决:在expert中的INPUT选项页的INPUT_ENCODEING中填入“GB2312”,这样基于GB的文本编辑器生成的代码就可以正常使用了。

doxygen 常见问题一览表(中文乱码等)

但是,还有一个无法彻底解决的问题就是,当输出语言为中文时左边的导航栏的所有中文仍然是乱码。哪位有解决方案,请务必告知!

2 图形问题:无法绘制类图协作图等图形。

首先确保安装了graphviz forwin,注意不是wingraphviz,后者是一个graphviz的com封装,但是doxygen并不是基于它开发的,所以装了也没用。然后在expert的DOT_PATH中填入graphviz的安装路径。接着在wizard的diagram中选择需要生成的图形类别就可以了。

如果出现无法包含.map文件的错误,可以将工作目录设置成html,并将html中所有文件都清除再试。这个问题的原因还不太确定。

3输出chm的问题:如何输出.chm文件

1. 你必须安装微软或其相兼容的chm编译系统。通常为HTML Help Workshop。

2. 首先在[Wizard...]的Output页面中,选择HTML,然后选择到prepare for compressed HTML(.chm)。

3. 其次在[Expert...]的HTML页面中,将HHC_LOCATION指向微软的hhc工具。通常为C:/Program Files/HTML Help Workshop/hhc.exe。然后点击OK,保存,编译即可。

doxygen 常见问题一览表(中文乱码等)

HHC_LOCATION中输入hhc.exe文件的路径。hhc.exe可以通过安装HTML Help Workshop获得。

doxygen 常见问题一览表(中文乱码等)

HTML Help Workshop 地址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en

4 如何像MSDN那样在左边的树中显示函数列表?

打开[Expert...]的HTML页面,然后选中TOC_EXPAND即可。

doxygen 常见问题一览表(中文乱码等)

5 如何去掉CHM附带的CHI文件?

注意在默认情况下,CHM会有一个CHI文件,似乎是用来加速索引的。我本人也遇到过很多用户仅仅上传了CHM,而没有上传CHI文件,导致无法正常显示的情况。我不知道是否可以通过工具重建CHI文件,但是我觉得关闭这个功能即可。打开[Expert...]的HTML页面,取消GENERATE_CHI即可。

6 如何像MSDN那样右边每页显示一个函数?

这个问题其实比较棘手,在[Expert...]中的Project页面,下面有一个选项叫做SEPARATE_MEMBER_PAGES,把这个选项选中,这样每个函数就是一个页。但是会有一个问题,那就是右边页面的旁边多了所有函数的列表。很遗憾,经过研究,这个确实无法去掉。我的解决方法就是自己编译一下doxygen,在memberlist.cpp的writeDocumentationPage函数中将container->writeQuickMemberLinks(ol,md);连同附近几行屏蔽掉即可。

7 如何在CHM中去掉当选择SUBGROUPING后去掉分组的组信息?

这个功能就是在chm的左边树中直接列出函数列表,而不用点击看右边页面了。这个功能需要修改源代码。在index.cpp中,屏蔽writeGroupIndexItem函数的Doxygen::indexList.addContentsItem,Doxygen::indexList.incContentsDepth和Doxygen::indexList.decContentsDepth();即可,具体不解释了,一看便知。

8 如何修改或者去掉右下脚Generated at ...的文字?

打开[Expert...]的HTML页面,然后在HTML_FOOTER中指定相应的HTML文件即可。注意HTML_FOOTER中至少包含BODY和HTML结束标记。即一个最小的尾部HTML至少是这样。同理,如果你要指定了HTML_HEADER,他至少包含

9 如何生成组?

组就是可以把同类的函数放到一个根下的显示方式。doxygen支持grouping,即你可以把相关的代码通过标志,放到同一个组中,便于查看。这主要是通过几个内置语法命令。首先通过@defgroup定义一个组,然后要把分组的函数或者类等,通过标志@ingroup加入相应的组。这样,相应的函数就被放置在同一个组中。

10 如何生成中文帮助?

点击[Expert...],在页Project 的OUTPUT_LANGUAGE,选择Chinese,这样输出的帮助提示信息就是中文。具体中文提示信息的文字在源代码中。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。