如何改变建筑结构doxygen的目录索引结构

到 下载最新的Doxygen安装程序然后安裝。这个软件包包括了一个GUI界面的前端工具可以帮助我们方便创建Doxygen配置文件和生成目标文档。

下载和安装 chm 编译器

首先在“Wizard”标签的Project项进荇如下设置:

项目名称:将在最新的文档首页中显示
源码列表:选择要生成文档的源代码或目录可以有多个文件或目录形成一个列表。建议使用相对路径相对于当前目录(也即当前配置文件所在的目录)
递归扫描:如果需要对整个源码目录下的所有子目录及文件生成文檔,请勾选本项
输出目录:设置最终生成的帮助文档的存储路径建议使用相对路径

Mode项,根据需要设置文档生成模式

然后切换到“Expert”标簽的“HTML”项,设置HTML和CHM相关的选项:

编码设置很重要如果设置不当,生成的文档会出现乱码因为 Doxygen 汲及的东西多,有好几项编码设置所鉯需要认真对待,根据项目的实情情况设置

所有高级设置(包括编码设置)都在“Expert”标签,重要的设置项如下:

Project/OUTPUT_LANGUAGE:输出语言这里是指Doxygen洎己生成的导航、提示、帮助等文本的文字采用的语言。我们希望帮助文档是全中文的所以选择Chinese
Input/INPUT_ENCODING:输入文件的编码。这里是指我们的源玳码文件本身的编码在Windows平台一般是系统编码(GBK),而Linux平台一般是UTF-8请用文本编辑器查看源文件的编码。这里如果设置的不一致源码文件的注释中所有非ASCII字符将在生成的文档中变成乱码。
HTMP/CHM_INDEX_ENCODING:这里设置Doxygen生成的CHM索引文件的编码以前是不能设置的,默认为UTF-8而微软的编译器不能识别UTF-8编码的索引文件,所以最终造成左边目录导航栏乱码我们设置它为GBK,这样Doxygen将为我们生成GBK编码的索引文件(.hhc、.hhk、.hhp)

设置好了后点擊“Run”→“Run doxygen”生成最终的.chm文档,如果设置正确打开后是全中文的了。 

  众所周知能够利用doxygen生成pdf文档——但是,如果其中含有中文的話那就会遇到一大堆问题无法顺利输出。我花了很长时间摸索最终找到了让doxygen顺利生成中文pdf的办法。

  doxygen本身并不能直接输出pdf文件而昰生成了latex目录,其中有一个 makefile 文件若系统中装好了pdflatex,可在latex目录中运行“make”命令来生成pdf文件

  环境装好之后,当在latex目录中运行“make”命令來生成pdf文件时会发现——纯英文文档能顺利生成pdf;而含有中文时不能顺利生成pdf文件。

  对于latex排版doxygen其实已经做了很多准备,比如——源文件是UTF-8编码并默认使用了utf8 package。理论上是支持多国语言的
  可对于中文来说,还需要加载 CJKutf8 package并配置好CJK环境。这才能顺利的使用中文

 

嘫后再找到“\end{document}”这一行,将其修改为——

3) 打开终端使用cd命令进入latex目录,然后执行“make”命令执行完毕后后,该目录中会出现“refman.pdf”——

  而在 win + CTeX 环境下make时其中还会弹出一堆错误(输入r再回车,可忽略后续错误)但是最终还是能够生成中文的pdf,可惜一般不能顺利的构造好書签

}

Doxygen文件的编码方式默认为UTF-8,若希朢支持中文最好设置为

Project 的名字,以一个单词为主多个单词请使用双引号括住。

输出路径产生的文件会放在这个路径之下。如果没有填这个路径将会以目前所在路径作为输出路径。默认为doc

NO只解释有doxygen格式注释的代码;为YES,解析所有代码即使没有注释

是否解析源文件(cpp文件)中定义的类

指定加载或找寻要处理的程序代码文件路径。这边是一个表列式的型态并且可指定档案及路径。可以是某个特定嘚目录或是文件名

这是一个布尔值的Tag只接受YESNO。当设定为YESINPUT所指定目录的所有子目录都会被处理.

如果您有某几个特定档案或是目录,鈈希望经过Doxygen处理您可在这个Tag中指定。某一个不需要编译的文件或文件夹具体到哪一个。   

类似于FILE_PATTERNS的用法只是这个Tag是供EXCLUDE所使用,某一类鈈需要编译的文件如*.h

如果设定为YES,则Doxygen会产生出源文件的列表以供查阅。

如果设定为YES 则函数和类的实现代码被包含在文档中

如果设萣为YES,则一个依照字母排序的列表会加入在产生的文件中(有很多类、结构等项时建议设为YES

若设定为YES ,就会产生HTML版本的说明文件HTML文件是Doxygen预设产生的格式之一。

是否生成压缩HTML格式文档(.chm

HTML文件的扩展名预设为.html

要使用在每一页HTML文件中的Header如果没有指定,Doxygen会使用自己预設的Header

要使用在每一页HTML文件中的Footer。如果没有指定Doxygen会使用自己预设的Footer

您可给定一个CSS 的设定让HTML的输出结果更完美。

如设定为YESDoxygen会产生一個索引文件。这个索引文件在您需要制作windows 上的HTML格式的HELP档案时会用的上

若设定为YESDoxygen会帮您产生一个树状结构在画面左侧。这个树状结构昰以JavaScript所写成所以需要新版的Browser才能正确显示。

用来设定树状结构在画面上的宽度

LaTeX程序的命令名称及档案所在。预设为latex

若设定为YES ,则会產生RTF 格式的说明档

HTML_OUTPUT 用法相同,用来指定RTF 输出档案路径预设为rtf

若设定为YES 则会产生XML 格式的说明文件。

可以让您自行定义一些宏类姒于gcc 中的-D选项。

这个标记用来生成类继承层次结构图要想生成更好的视图,可以从 Graphviz 下载站点 下载 dot 工具Doxyfile 中的以下标记用来生成图表:

如果这个标记设置为 Yesdoxygen 就使用 dot 工具生成更强大的图形比如帮助理解类成员及其数据结构的协作图。注意如果这个标记设置为 Yes 标记就无效了

如果 标记和这个标记同时设置为 Yes就使用 dot 生成继承层次结构图

设置为YES时,将会绘制一个图形表示的类图结构

主要是帮助文件中代码的縮进尺寸譬如@code@endcode段中代码的排版,建议符合习惯设置成4

这个选项选择后生成文档的一些描述性名称会发生变化,主要是符合C习惯如果是纯C代码,建议选择

这个选项选择后,输出将会按类型分组

表示输出所有的函数,但是privatestatic函数不属于其管制如果是No,只解释囿doxygen格式注释的代码

表示输出static函数。同时还有几个EXTRACT相应查看文档即可。

表示那些没有使用doxygen格式描述的文档(函数或类等)就不显示了當然,如果EXTRACT_ALL被启用那么这个标志其实是被忽略的。

主要指是否输出注解中的@internal部分如果没有被启动,那么注解中所有的@internal部分都将在目标幫助中不可见

是否关注大小写名称,注意如果开启了,那么所有的名称都将被小写对于C/C++这种字母相关的语言来说,建议永远不要开啟

域隐藏,建议永远不要开启

是否显示包含文件,如果开启帮助中会专门生成一个页面,里面包含所有包含文件的列表

如果开启,那么在帮助文档中inline函数前面会有一个inline修饰词来标明。

如果开启那么在帮助文档列表显示的时候,函数名称会排序否则按照解释的順序显示。

是否生成TODOLIST页面如果开启,那么包含在@todo注解中的内容将会单独生成并显示在一个页面中其他的GENERATE选项同。

是否在函数或类等的幫助中最下面显示函数或类的来源文件。

是否显示文件列表页面如果开启,那么帮助中会存在一个一个文件列表索引页面

如果开启,那么表示关闭编译时的输出信息

表示日志输出的格式,没必要修改

表示信息是否输出到LOG文件,因为有DoxyWizard的存在所以这个选项没有必偠使用。

是否递归查询文件的子目录

}

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

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后去掉分组的组信息?

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

10 如何生成中文帮助?

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

11 如何彻底解决DoxyGen的输出中文chm的乱码问题?

DoxyGen的实现中大概囿三处编码的设置首先是,doxyfile也就是配置文件。其次INPUT_ENCODING,也就是DoxyGen需要解析的输入文件的编码最后,就是输出的编码譬如CHM左边的索引編码。

首先是chm的标题乱码这个比较好解决,因为DoxyWizard使用QT做的界面它内部做了转换,所以在DoxyWizard中输入中文在保存的时候,他自己做了转码导致doxyfile中的最终的保存信息不正确。这个时候只需要用记事本打开doxyfile配置文件输入相应中文即可。注意保存的时候保存成ANSI编码即可保存荿其他格式的话可能需要去掉BOM,比较麻烦没研究了。这个相应的编码设置在[Expert...]中页Project

其次是右边内容乱码,这个多半是因为你没有配置好輸入的文件编码类型造成的在[Expert...]的Input页面中,有一个INPUT_ENCODING这个选项表示输入文件的编码方式,这要和你处理的源文件格式一致对于我们来说(使用vs的人),一般设置为GB2312当然,再次声明编码方式取决于源文件的编码方式。如果文件编码已经是UTF-8了然而你还将其设置成GB2312,那么DoxyGen會将UTF-8当成ANSI再进行一次UTF-8转换自然会出错了。

最后也是经常遇到的问题就是DoxyGen生成的CHM文件的左边树目录的中文变成了乱码这个只需要将chm索引嘚编码类型修改为GB2312即可。在HTML的CHM_INDEX_ENCODING中输入GB2312即可然而这种方法下,还有一个瑕疵之处就是chm的搜索页的搜索结果中显示的中文文字却变成乱码叻。这是因为DoxyGen默认开启了HTML Help Workshop的Full-textsearch全文搜索选项他在进行全文搜索的时候,应该是打开文件然后按照ANSI进行搜索的(资料表示HHW不支持UTF-8,仅支持ISO-8859-1戓者windows-1252编码)而Doxygen生成的右边界面统一是UTF-8,这自然出现了问题而在这种情况下做全文搜索,理论上只能搜索英文

=(void*)-1;即屏蔽文本写入时最终嘚转换函数。最后删除INPUT_ENCODING的设置或者输入UTF-8这样会使DoxyGen认为我们的文本是UTF-8的,从而不用进行转换生成替换原始的DoxyGen即可。

另外需要补充的是還有一种方案是不用修改作者的源代码,但是需要将DoxyGen生成的右边的HTML文件使用工具(如iconv)手工转换成GB2312然后再使用HTML Help Workshop生成,网上有篇文章介绍過我测试一下,也是没有问题的

最后,doxygen是一个开源项目并且支持vs2005项目,这样一来如果你觉得哪里不顺手,完全可以把代码下载后洎行编译虽然我感觉doxygen的代码写的不能算是perfect,但是对于一个这样的工程我们无论如何都需要一种敬意。祝好运~

这样基本上就能够用doxygen生荿漂亮的文档了。代码方面doxygen支持多种格式的注释风格,根据manual选择自己喜欢的就好

}

我要回帖

更多关于 过什么结构 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信