首页 > Doxygen自动文档生成工具在Eclipse中的集成及使用举例

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

你有为软件编写说明文档的苦恼吗?当别人甩给你一个庞大的系统,让你根据里面的代码注释理解后写出一份完整的开发文档,你会怎么办?一个个的看代码 然后耗时N天来写吗?这既是一份苦差事也极其耗时,有没有更好的办法呢?比如根据代码注释自动生成详尽的说明文档……可能有人会说用Javadoc就是 了,要是C/C++、Python、C#等语言写的软件呢?有没有类似Javadoc的东西?

Yes,当然有,Doxygen就是这样一个能满足你需求的工具。Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxgen可以从一套归档源文件开始,可将程序中的特定批注转换成为说明文件,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。被Boost、OpenCasCade等诸多项目作为文档生成工具的不二选择

由于我主要的开发语言是Java,所以在这里主要说明Doxygen在Eclipse里的集成及使用步骤。

 

1. 安装doxygen工具

在集成之前需要安装doxygen工具,下载方法有两种:目前最新版是1.8.6

(1)官方网站下载(建议):Doxygen:Downloads



 (2)在sourceforge下载:Doxygen





2.安装doxygen在Eclipse中的插件:Eclox

建议在其官方网站下载:Eclox



 

下载eclox_0.8.0.zip后解压,安装插件的方法也有几种:

1. 将eclox_0.8.0中的plugins和features目录里的内容,移动到eclipse中的plugins和features目录里重启即可,最简单。

2. 通过links方法安装插件(建议该方法,具体可Google)。

2. 采用Eclipse里的update manager安装插件,具体方法请看这里。

注意:网上都说同时要下载eclox.update_0.8.0.zip并解压安装,其实完全没必要,eclox.update_0.8.0只是版本的更新过程,里面包含的都是最新版本和历史版本插件,而我们需要的只是最新版本的,故不需要下载此压缩文件。



如果这两个步骤都完成后,重启eclipse之后,就可以发现在工具栏上多了一个@的图标,如下图所示,表示安装成功。



3. 在Eclipse中配置doxygen运行环境

工具栏上 windows->preferences->Doxygen, 点击Add,添加doxygen安装目录中的bin目录,如下图所示:



 

到此doxygen在Eclipse中的集成工作就完成了。

 

4. 使用Doxygen生成文档过程举例

4.1 自动生成工程的doxygen文件

首先选择你要生成文档的工程,

然后File->New->others....,出现下面的选择框,选择Other中的Doxyfile。





点击next,配置Doxygen,定好文件的名字,点击Finish就OK了。

当然到此还没结束,最重要的一步还没完成,就是自动生成doxygen文件后需要我们自己配置各个参数和选项。

4.2 配置doxygen文件参数和选项

配置Doxygen文件参数也有三种方式:



4.2.1 使用Eclipse中集成的doxygen editor进行修改

在Eclipse中打开刚刚自动生成的doxygen文件,默认的配置如下:



比如在Eclipse中我用的配置选项如下:



建议大家如果不理解各个选项,可以尝试每个选项的生成效果,以找出自己最想要的文档格式。



4.2.2 使用Doxygen安装程序自带的GUI工具

找到Doxygen的安装目录下的bin目录里,如下图所示可以看到有个GUI工具:



打开后如下图所示:



与Eclipse中大同小异,各个参数选项慢慢琢磨吧,很简单。



4.2.3 直接用文本编辑器进行修改

针对doxyfile可直接用文本编辑器进行编辑,建议用Notepad++或写字板等打开,不要用无排版的记事本。

主要有以下内容需关注:

  • 必须在这里提供一个目录名,例如 /home/user1/documentation,这个目录是放置生成的文档文件的位置。如果提供一个不存在的目录名,doxygen 会以这个名称创建具有适当用户权限的目录。
  • 这个标记创建一个以空格分隔的所有目录的列表,这个列表包含需要生成文档的 C/C++ 源代码文件和头文件。如果项目只有一个源代码根目录,其中有多个子目录,那么只需指定根目录并把 标记设置为Yes
  • 在默认情况下,doxygen 会搜索具有典型 C/C++ 扩展名的文件,比如.c、.cc、.cpp、.h.hpp。如果 标记没有相关联的值,doxygen 就会这样做。如果源代码文件采用不同的命名约定,就应该相应地更新这个标记。例如,如果项目使用.c86 作为C 文件扩展名,就应该在 标记中添加这个扩展名。
  • 如果源代码层次结构是嵌套的,而且需要为所有层次上的 C/C++ 文件生成文档,就把这个标记设置为Yes。例如,请考虑源代码根目录层次结构 /home/user1/project/kernel,其中有 /home/user1/project/kernel/vmm 和 /home/user1/project/kernel/asm 等子目录。如果这个标记设置为Yes,doxygen 就会递归地搜索整个层次结构并提取信息。
  • 这个标记告诉 doxygen,即使各个类或函数没有文档,也要提取信息。必须把这个标记设置为Yes
  • 把这个标记设置为 Yes。否则,文档不包含类的私有数据成员。
  • 把这个标记设置为 Yes。否则,文档不包含文件的静态成员(函数和变量)。
  • 默认 = English,文档语言(自动生成的文字部分),可以指定为Chinese。
  • 默认 = UTF-8,默认编码为UTF-8,这样可以支持中文。
  • 项目名称,多个单词需要使用引号(“”)。
  • 项目版本号。



4.3 运行doxygen文件生成最后的文档

配置完成后在Eclipse中点击@插件按钮选择doxygen配置文件即可生成文档了。

可以在控制台看到生成详细过程,如果有如何配置错误如指定的路径或文件不存在等,都会给出提示,按要求重新配置即可。



打开生成文档里的index.html(如果是html格式),在浏览器查看,点击各个选项查看效果如下:

主界面:

查看某个函数的界面:



更多 0

更多相关:

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...

  • 参考文档...

  • 有好几天没有更新博客了,前段时间因为要开学了,需要凑足学费才能继续在学校学习,耽误了几天,这两天需要补充前面需要学习的一些知识点了。今天就开始进入JavaWeb阶段吧,这段时间我们需要了解一些前端的知识,还有数据库方面的等等,具体的我下次回顾的时候再谈,今天就开始XML方面的一些基础知识的回顾吧!!   一. xml概述 1.1.xm...

  • zeal是一个windows上的开源的离线文档浏览工具,基于docset格式,可以兼容全部dash的文档。zeal没有代码片段管理的功能,只提供文档浏览功能,不过windows下的用户可算是有的用了。dash目前只提供mac上的版本,作者说有往windows上移植的打算,但迟迟没有动工。 刚安装好之后是没有文档可以看的, 需要自己下...

  • 2019独角兽企业重金招聘Python工程师标准>>> 王超:奇虎360MongoDB     MongoDB是高性能开源文档数据库,也是目前最受关注的NoSQL技术之一,以敏捷、可扩展和对企业应用友好(支持事务,一致性和数据完整性保证。该文档具体讲到了奇虎360为什么会使用MongoDB?MonoDB在亿级数据规模...

  •    本来不打算写这个博客的,我讨厌的话题,但是现实中遇到很多事情让我觉得是我沟通有问题!沟通是两个人的事情,做技术的人你和别人沟通需要看对方是什么水平的人,啥也不懂,啥也不会的人,你用那么专业的术语来描述,肯定解决不了问题。最好是举一些通俗易懂的例子    作为一个新人,我们应该在遇到问题的时候,先自己尝试去了解一些东西,比如:一...