1.强大的Doxygen工具使用手册
2.Doxygen配置文件
3.Doxygen简介
4.doxygen 常见问题一览表
5.有限元学习笔记18利用doxygen生成代码文档
6.Doxygen使用步骤
强大的Doxygen工具使用手册
张三:假如我们自己开发了一个类库,怎么做一个方便阅读的文档呢?李四:一个方法一个方法地写呗,就像写Excel文档一下。
张三:啊,你out了,这多慢呀。mes看板 源码为什么不玩玩doxygen工具,它能帮你生成文档?
李四:这么爽,什么东东,给说讲讲。
1. Doxygen, what?
Doxgen就是大名鼎鼎的文档生成工具,而且是免费开源的,它使用非常方便,能提取C++,Java,Objective-C,Python,IDL,PHP,C#等语言的注释,从而生成文档。
你可以访问其官方网站,下载安装包,它的官网上有详细的使用手册。
支持的主要语言格式
ExtensionLanguage.idlIDL.ddlIDL.odlIDL.javaJava.csC#.cC.cppC++可产生出来的文档格式有:
HTMLXMLLaTeXRTFCHM
要让工具能提取注释,那么就要求你写的注释要按照一定的规则来写,不能乱写,不然该工具是无法识别的,通常在Java中,只要JavaDoc能识别的,doxgen也能识别。
2. 安装Doxygen
我们可以在这个网址去下载最新的安装包
安装过程就不用说了,很简单,直接Next,最后Finish就OK了。
3. 配置Doxygen
配置doxgen是最核心的,你可以设置你要提取注释的源文件,生成的文档格式,工程名称,文档的Logo等信息,这些配置是可以存储起来的,当你的源代码更新后,重新再运行这个配置文件,就可以重新生成一个新的文档。
在安装后,进入到其安装目录下的bin文件夹,它里面有两个文件:doxygen.exe和doxywizard.exe,我们先运行doxywizard.exe来进行配置,从而生成配置文件(如果是第一次运行)。
图1,视频源码领取Doxygen配置主界面。
1,Doxygen工作目录,就是用来存储配置文件的目录。
2,递归搜索目录需要选上。
图2,选择输出文档格式
图3,生成类图
图4,选择文档的编码格式。
说明:编码格式,UTF-8 是首选。如果需要显示中文则选择GB。
图5,设置提取的范围。
图6,设置源码的格式。
图7,设置生成CHM文件属性。
图8,配置完成后,点击Run doxygen来运行配置,最后,点击File-Save存储配置文件,下次就不用再配置了。
4. 输出文档示例
下面的示例了输出的文档格式(HTML),很简单实用,同时还能支持Search。
图9,列出所有的包名。
图,具体某一个类的详细注释,可以列出所有的公有方法,你的代码注释写得越详细,那么生成的文档也就越详细。
Doxygen配置文件
Doxygen的配置文件遵循Unix下常见的配置文件格式,以井号'#'开始注释,配置项由标签(tag)和值(value)组成,支持多值设置。配置内容分为输出选项和项目信息两部分。输出选项通常适用于多个项目,项目信息则需针对每个项目单独设定。 输出选项包括:PROJECT_NAME:项目名称,定义项目的标识。
PROJECT_NUMBER:版本信息,可以用来区分不同版本的项目。
OUTPUT_DIRECTORY:指定文档生成的目录,可为相对路径或绝对路径。
INPUT:源代码目录或文件,etc存储源码使用空格分隔。
FILE_PATTERNS:指定输入目录中的特定文件类型,如.cpp和.h文件。
RECURSIVE:决定是否递归解析子目录。
EXCLUDE和EXCLUDE_PATTERNS:忽略输入目录中的特定子目录和文件。
OUTPUT_LANGUAGE:文档生成的语言,默认为英文,支持多种语言选项。
编码设置:默认根据操作系统选择。
EXTRACT_ALL:控制是否解析所有代码,包括无注释部分。
私有成员和静态项提取:通过EXTRACT_PRIVATE和EXTRACT_STATIC设置。
项目信息选项则有:解析源文件中定义的类:EXTRACT_LOCAL_CLASSES。
源代码浏览器:SOURCE_BROWSER。
包含源代码:INLINE_SOURCES。
文档生成格式:如HTML、HTMLHELP、LATEX、RTF、MAN和XML,可按需开启。
每个选项都有详细的说明在配置文件中,可以根据项目需求灵活调整。扩展资料
Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxgen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。Doxygen简介
Doxygen是一个强大的文档生成工具,专门用于将程序中的注释转化为易于理解的参考手册。在编写代码时,我们常常添加注释来解释函数、类等细节,但这些信息如果没有有效整理,对其他人来说查找起来就像在茫茫大海中寻找泰坦尼克号的残骸一样困难。Doxygen的存在,旨在将这些零散的注释按照程序结构进行整理,生成出清晰的参考文档,大大减轻了他人理解和使用代码的负担。 对于未整理的lisp语言源码源代码,Doxygen提供了配置选项,可以自动提取代码结构,生成包含依赖关系(如dependency graphs)、继承关系(inheritance diagram)以及协作关系(collaboration diagram)的可视化图表。它支持多种文档格式输出,包括CHM、RTF、PostScript、PDF、HTML和Unixman page,满足不同平台和需求的开发者。 优秀的程序员在编写代码时,会遵循一定的注释规范。如果遵循Doxygen的特定格式,就能让这个工具发挥出它的魔力,自动将注释转化为美观的文档。使用Doxygen的过程大致分为两步:首先,确保注释遵循规定格式;其次,利用Doxygen工具生成最终文档。通过这样的方式,程序员可以专注于编程本身,而将繁琐的文档生成工作交给Doxygen处理,从而有更多时间享受咖啡时光。 Doxygen就像是你的个人代码文档助手,只需简单遵循它的规则,就能让代码的世界变得更加有序和易于理解。其使用主要包括注释的规范写作和利用工具生成文档的自动化过程。扩展资料
Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxgen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。doxygen 常见问题一览表
下载doxygen的binary 包为了使doxygen能够将类图、协作图等加入到文档中,还要下载安装graphviz for win。
graphviz 2.下载:
封装,但是doxygen并不是基于它开发的,所以装了也没用。然后在expert的DOT_PATH中填入graphviz的安装路径。接着在wizard的phpmysql的源码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,保存,编译即可。
HHC_LOCATION中输入hhc.exe文件的路径。hhc.exe可以通过安装HTML Help Workshop获得。
HTML Help Workshop 地址:
/downloads/details.aspx?FamilyID=-c8a6-f-9aa0-ddccdisplaylang=en
4 如何像MSDN那样在左边的树中显示函数列表?
打开[Expert...]的HTML页面,然后选中TOC_EXPAND即可。
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至少是这样/BODY/HTML。同理,如果你要指定了HTML_HEADER,他至少包含HTMLHEAD/HEADBODY
9 如何生成组?
组就是可以把同类的函数放到一个根下的显示方式。doxygen支持grouping,即你可以把相关的代码通过标志,放到同一个组中,便于查看。这主要是通过几个内置语法命令。首先通过@defgroup定义一个组,然后要把分组的函数或者类等,通过标志@ingroup加入相应的组。这样,相应的函数就被放置在同一个组中。
如何生成中文帮助?
点击[Expert...],在页Project 的OUTPUT_LANGUAGE,选择Chinese,这样输出的帮助提示信息就是中文。具体中文提示信息的文字在源代码中。
如何彻底解决DoxyGen的输出中文chm的乱码问题?
DoxyGen的实现中大概有三处编码的设置。首先是,doxyfile,也就是配置文件。其次,INPUT_ENCODING,也就是DoxyGen需要解析的输入文件的编码。最后,就是输出的编码。譬如CHM左边的索引编码。
首先是chm的标题乱码,这个比较好解决,因为DoxyWizard使用QT做的界面,它内部做了转换,所以在DoxyWizard中输入中文,在保存的时候,他自己做了转码,导致doxyfile中的最终的保存信息不正确。这个时候只需要用记事本打开doxyfile配置文件,输入相应中文即可。注意保存的时候保存成ANSI编码即可。保存成其他格式的话可能需要去掉BOM,比较麻烦,没研究了。这个相应的编码设置在[Expert...]中,页Project 的 DOXYFILE_ENCODING,不输入或者默认为UTF-8都行。
其次是右边内容乱码,这个多半是因为你没有配置好输入的文件编码类型造成的。在[Expert...]的Input页面中,有一个INPUT_ENCODING,这个选项表示输入文件的编码方式,这要和你处理的源文件格式一致。对于我们来说(使用vs的人),一般设置为GB。当然,再次声明,编码方式取决于源文件的编码方式。如果文件编码已经是UTF-8了,然而你还将其设置成GB,那么DoxyGen会将UTF-8当成ANSI再进行一次UTF-8转换,自然会出错了。
最后也是经常遇到的问题就是DoxyGen生成的CHM文件的左边树目录的中文变成了乱码。这个只需要将chm索引的编码类型修改为GB即可。在HTML的CHM_INDEX_ENCODING中输入GB即可。然而这种方法下,还有一个瑕疵之处,就是chm的搜索页的搜索结果中显示的中文文字却变成乱码了。这是因为DoxyGen默认开启了HTML Help Workshop的Full-textsearch全文搜索选项,他在进行全文搜索的时候,应该是打开文件然后按照ANSI进行搜索的,(资料表示HHW不支持UTF-8,仅支持ISO--1或者windows-编码。)而Doxygen生成的右边界面统一是UTF-8,这自然出现了问题。而在这种情况下做全文搜索,理论上只能搜索英文。
无奈,我们的解决方案只能是重新编译DoxyGen代码,为了满足搜索,只要保证右边的页面文件不是UTF-8即可。我们首先修改writeDefaultHeaderFile这个函数的代码,将其charset=GB。然后在TranslatorDecoder的构造函数中修改m_toUtf8 =(void*)-1;即屏蔽文本写入时最终的转换函数。最后删除INPUT_ENCODING的设置或者输入UTF-8。这样会使DoxyGen认为我们的文本是UTF-8的,从而不用进行转换。生成替换原始的DoxyGen即可。
另外需要补充的是,还有一种方案是不用修改作者的源代码,但是需要将DoxyGen生成的右边的HTML文件使用工具(如iconv)手工转换成GB,然后再使用HTML Help Workshop生成,网上有篇文章介绍过,我测试一下,也是没有问题的。
最后,doxygen是一个开源项目,并且支持vs项目,这样一来,如果你觉得哪里不顺手,完全可以把代码下载后自行编译。虽然我感觉doxygen的代码写的不能算是perfect,但是对于一个这样的工程,我们无论如何都需要一种敬意。祝好运~
这样,基本上就能够用doxygen生成漂亮的文档了。代码方面,doxygen支持多种格式的注释风格,根据manual选择自己喜欢的就好。
有限元学习笔记利用doxygen生成代码文档
代码文档的重要性在于提供关于代码的附加信息,帮助理解和维护。
编写文档不仅有助于他人,也是对自己未来的帮助。在开发过程中,有效的文档能够节省时间,避免后续的困惑。
文档在多个层面至关重要,从项目组织到团队协作,都离不开文档。它记录了代码逻辑、设计决策和功能实现,使得代码易于阅读和维护。
编写代码和文档的顺序是一个关键问题。通常推荐先写文档,因为文档的编写基于合同设计,确保了代码和文档的一致性。这样可以先理解需求和目标,再进行编码,从而减少返工。
手动维护文档更新非常困难,尤其是在大型项目中。因此,使用工具从源代码中提取文档显得尤为重要。doxygen就是这样一个强大的工具,它能自动化生成高质量的文档。
使用doxygen,开发者可以在源代码中添加特定的注释,这些注释会被doxygen识别并转换成结构化的文档。例如,使用特殊标记@f$ x^n @f$可以生成公式显示效果,而doxygen将自动生成HTML或PDF文档,展示这些信息。
通过doxygen,开发者可以轻松创建和维护文档,确保代码和文档的一致性。这种工具化的方法不仅节省时间,还能提高文档的准确性和可读性,从而提高整个项目的质量和效率。
Doxygen使用步骤
本文将直接介绍Doxygen的使用步骤,无需深入原理。以下是主要的四个步骤: 1. 安装: 首次使用Doxygen,你需要安装该工具。在Linux环境下,可以直接下载安装包并运行,或者选择从源代码编译安装,具体操作可以参考官方的安装文档。 2. 配置文件生成: 安装完成后,为你的项目生成doxygen配置文件。使用命令 doxygen -g [配置文件名],这将自动生成一个默认配置文件,后续可根据项目需求进行个性化设置。 3. 编写注释: 编写代码时,Doxygen需要特定格式的注释。详细注释规则将在第三部分详细说明,以确保文档的生成符合Doxygen的要求。 4. 生成文档: 当代码编写完毕并注释规范后,通过运行命令 doxygen [配置文件名],Doxygen会根据你的注释和配置,生成相应的文档。值得注意的是,Doxygen更关注与程序结构相关的注释,如文件、类、函数等,而非函数内的局部变量或代码注释。 以上就是使用Doxygen的基本流程,按照这些步骤操作,你就能轻松生成项目文档了。扩展资料
Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxgen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。Doxygen组态
在配置Doxygen以生成文档时,需要遵循三个关键步骤。首先,创建项目配置文件,它是一个简单的键值对设定,其中以井号(#)开头的行被视为注释,会被忽略。配置格式有两种:TAG = value [value, ...],用于设定单一键值,值可以包含空格,用双引号括起来。
TAG += value [value, ...],适用于表列型的TAG,多个值以逗号分隔,后续定义会合并前面的值。
了解了基本格式后,选择适合的TAG进行设置,如PROJECT_NAME(项目名,可能需用双引号包含多字)、PROJECT_VERSION(版本号)、OUTPUT_DIRECTORY(输出路径)等。Doxygen提供了方便的工具,如`doxygen Doxygen`,生成初始配置文件,然后用文本编辑器进行修改。 接下来,介绍几个关键的TAG设置示例:PROJECT_NAME: 项目名(用双引号括住多字)
PROJECT_VERSION: 项目版本号
OUTPUT_DIRECTORY: 输出文件的根路径
OUTPUT_LANGUAGE: 输出语言,如Chinese-Traditional
INPUT: 指定处理的源代码文件路径,支持目录和文件,使用逗号分隔
FILE_PATTERNS: 指定处理特定文件类型,如".c, .cpp, .h"
RECURSIVE: 是否递归查找子目录的源代码
EXCLUDE和EXCLUDE_PATTERNS: 排除不希望处理的文件或目录
SOURCE_BROWSER: 是否生成源文件列表
INLINE_SOURCES: 是否在文档中包含源代码
ALPHABETICAL_INDEX: 是否生成字母索引
GENERATE_HTML: 是否生成HTML文档
每个TAG的详细说明和更多选项,建议查阅Doxygen的官方文档。若嫌手动编辑繁琐,可使用Doxygen Wizard工具来简化配置过程。扩展资料
Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxgen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。