文档章节

Doxygen初学与简单应用

抢小孩糖吃
 抢小孩糖吃
发布于 2013/02/28 14:42
字数 1132
阅读 13816
收藏 19
点赞 2
评论 5

本文环境为Windows 7 x64

一直在使用javadoc,奈何c\c++,python等其他语言注释写的很好,但没有工具自动生成文档。

通过同事反应Doxygen可以针对各种语言生成文档内容。随即查阅了Doxygen的相关内容。

Doxygen介绍:

Doxygen 是一个 C++, C, Java, Objective-C、Python、IDL (CORBA 和 Microsoft flavors)、Fortran、VHDL、PHP、C#和D语言的文档生成器。可以运行在大多数类Unix系统,以及Mac OS X操作系统和Microsoft Windows 。 初始版本的Doxygen借鉴了一些老版本DOC++的代码;随后,Doxygen源代码由Dimitri van Heesch重写。

Doxygen是一个编写软件参考文档的工具。 该文档是直接写在代码中,因此比较容易保持更新。 Doxygen 可以交叉引用文档和代码,使文件的读者可以很容易地引用实际的代码。

详细请看http://www.oschina.net/p/doxygen


要想使用Doxygen,需要三大步骤

1.Doxygen及其相关内容下载

1.1Doxygen下载

      由于国内墙了Doxygen的官网,但sourceforge还是可以使用

http://sourceforge.net/projects/doxygen/?source=dlp 进行下载

本文使用的为Doxygen 1.8.3.1

安装,我们将在配置的时候使用doxywizard,Doxygen的GUI版本。

1.2HTML Help Workshop下载

如果你希望你的Doxygen自动生成chm,那么请下载HTML Help Workshop,我们将要使用当中的hcc.exe文件以及相关dll

http://www.microsoft.com/en-us/download/details.aspx?id=21138 进行下载

下载其中的htmlhelp.exe并安装,记住安装目录,我们将在Doxygen配置时使用。

1.3 Graphviz

Graphviz在Doxygen用于自动生成类图的工具。

登陆官网发现被墙了,只能在天朝大局域网内随便找个方便的连接了。

http://download.tech.qq.com/soft/53/54/85568/index.shtml,我们大腾讯肯定不会封

点击下载,请自动忽略旋风下载 =。=

安装并记录安装目录,同样我们一会需要配置Doxygen

2.配置Doxygen

2.1基本配置

在基本配置中,会介绍一些关于Doxygen的基本配置,例如各种乱码,输出内容等。

首先我们打开开始-》所有程序-》Doxygen-》doxywizard

在开始之前,打开Doxygen GUI frontend的File,保存到你需要做测试的目录

会出现一个Doxyfile的配置文件,修改选项后保存,下次通过Doxygen打开这个文件可以还原该项目的配置

第一步,选择你的工作目录(源代码位置),点击Select。

第二步,进行配置

首先修改Project name,选择扫描源代码的目录,Source code directory:,勾选Scan recursively

在Wizard的Topics下的Mode,选择All Entities,可以输出相对完整的功能,是否包含源代码看你自身情况,在下面选择好你的语言。这里作者使用的是C所以选择C or PHP

在Output中,如果你需要输出chm格式,请勾选。

在Diagrams中选择使用GraphViz包,来输出UML。

2.2字符集乱码

Expert中,你需要首选确定你所输出的语言,个人使用中文

在Expert的Input中,很重要的是INPUT_ENCODING项,如果你使用的为微软默认字符集请填写GBK,不然目录乱码。

在Expert的HTML中,首先要看HHC_LOCATION选项,添加安装目录(注:作者目录为D:/build/doxygen/hcc/HTML Help Workshop/hhc.exe)

勾选CHM_INDEX_ENCODING,在你源代码中的字符集是什么就填写什么,作者的C由于使用keil,所以填写为GBK,java对eclipse切换了字符集所以为UTF-8,还有注意给chm命名以方便寻找。

2.3GraphViz的输出

之后在Expert的Dot中勾选CLASS_DIAGRAMS,UML_LOOK

为了减少chm体积,在DOT_IMAGE_FORMAT中选择gif或者jpg,均可。

最后在DOT_PATH下面填入dot.exe的路径

配置GraphViz 暂缺

2.4生成文档

之后点击Run-》Run doxygen。

这时你可以看到一个没有任何注释与说明的关系图。(chm请在html文件内寻找)


3.关于注释格式

由于Doxygen支持 javadoc的格式,但还有部分区别,按照如下方式可以作为注释的模板,可以参考Doxygen的具体文档,形成你自己的风格。

/**
* @brief 说明内容
* @param void
* @return void
* @author 123
* @version v1.0.0.0
* @date 2013
* @since Keil uVision4
* @bug 
* @warning 
*/
结尾:

      注意保存Doxygen的配置文件,下次使用打开该配置即可,Doxygen虽然说明了如何使用,但是作者开始并没进行保存,很多调整的配置项丢失。

© 著作权归作者所有

共有 人打赏支持
抢小孩糖吃

抢小孩糖吃

粉丝 67
博文 231
码字总数 224458
作品 0
东城
程序员
加载中

评论(5)

抢小孩糖吃
抢小孩糖吃

引用来自“我叫mly”的评论

灰常感谢,找到原因了 。在DOT_PATH下面填入dot.exe的路径,也就是graphviz安装目录下的bin文件夹。
你里边说的是dot输出路径,这的问题
已经修改,谢谢
我叫mly
我叫mly
灰常感谢,找到原因了 。在DOT_PATH下面填入dot.exe的路径,也就是graphviz安装目录下的bin文件夹。
你里边说的是dot输出路径,这的问题
我叫mly
我叫mly
你好,我想问一下,我按你这个步骤来的来,但是貌似没找到图片生成去哪了,打开网网页,也没有图片,那个图片输出也没有图片文件,我看到你写着个 配置GraphViz 暂缺 。是不是 GraphViz这个需要配置,如果需要请问有没有相关资料,谢谢13
C
CREPAS
这个不错哦,学习一下,感谢分享
iptvphone
iptvphone
非常有效,感谢分享~.~
FFmpeg编写一个简单播放器 --开篇

FFMPEG是一个很好的库,可以用来创建视频应用或者生成特定的工具。FFMPEG几乎为你把所有的繁重工作都做了,比如解码、编码、复用和解复用。这使得多媒体应用程序变得容易编写。它是一个简单的...

GuoKai
2012/09/19
0
0
Doxygen 1.6.3 发布,文档生成工具

Doxygen, 大名鼎鼎的文档生成工具,被Boost、OpenCasCade等诸多项目作为文档生成的不二人选。人说,才华横溢往往是高深莫测,这句话放在 Doxygen这里显然是不适用的。十八般武艺样样精通的D...

红薯
2010/02/22
705
0
使用Doxygen构建文档系统

如果您这次还没来得及使用老式的Help Workshop为您的Web应用构建文档系统的话,那么,何不尝试一下Doxygen,需知"The proof of the pudding lies in the eating"。 Doxygen是什么? Doxygen是...

红薯
2009/02/11
2.5K
2
libevent 介绍

 libevent 2.0 介绍 libevent是一个用于开发可扩展性网络服务器的基于事件驱动模型的网络库.libevent具有几个显著亮点: 事件驱动,高性能 轻量级,专注于网络 跨平台,支持Windows, Lin...

mjrao
2016/04/19
152
0
使用Doxgen创建Xcode文档集

http://blog.csdn.net/kmyhy/article/details/6221413 文档集为Xcode开发者提供了一个查找各种文档的便捷方式,包括:API、指南、教程、Q/A、示例代码及其他。 许多开发者都用过苹果文档集,...

JohnZr
2012/08/10
0
0
xmake插件使用之doxygen文档生成

这个doxygen插件比较简单,说白了就是一键生成工程文档,只需要执行下面这行命令就行了 当然你也可以指定输出目录,可以工程源码目录: 生成的文档中,工程名和版本号,就是xmake.lua中通过如...

ruki
2016/06/22
7
0
doxygen学习笔记 2012-02-28

Doxygen把自己定义为“Source code documentation generator tool”(源代码文档生成工具)。Doxygen提供一种维护文档的机制。Doxygen可以做下面的事情: 1、从已经文档化的代码中抽取并生成...

qbcs
2012/06/08
0
1
Linux源代码分析工具链

vim+ctags+cscope 源码阅读三剑客.vim配合ctags和cscope,足以在源代码里面自由翱翔,在函数和变量间自由跳转. 安装 1 sudo apt-get install vim ctags cscope 使用 vim vim的使用就略过了,网上...

CasparLi
2015/09/06
197
0
EclipseforC/CPP 之配合 doxygen + graphviz 生成HTML代码文档

JAVA语言中的代码注释那是相当好的一个东西,尤其是使用了Eclipse之后,简直是程序员的福音。小弟前几天用了一下午的时间,经过在网上的查找以及我一点点的探索,终于搞定在windows平台下,使...

小代码2016
2014/10/20
0
0
微核心操作系统--FreeNOS

FreeNOS 是一个主要为学习目的提供的微核心操作系统,该系统目前是体验性的,但支持虚拟内存,简单的任务调度,进程间通信( IPC ) 。目前,它包含支持少数设备,其中包括VGA ,键盘, i825...

匿名
2009/07/11
3.1K
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python -re模块及正则表达式解析

传送门: https://blog.csdn.net/pipisorry/article/details/25909899 ps:上面文章中"命名分组"的语法格式不能执行。正确的如下: (?P<name>正则表达式) #name是一个合法的标识符 除了使用别名...

一口今心
9分钟前
0
0
mybatis中session.getMapper方法源码分析

0开始代码AuthorMapper mapper = session.getMapper(AuthorMapper.class); 1 DefaultSqlSession类 @Override public <T> T getMapper(Class<T> type) { //最后会去调用MapperRegistry.getMap......

writeademo
17分钟前
0
0
spring cloud zuul网关的作用

zuul一般有两大作用,1是类似于Nginx的网址重定向,但zuul的重定向的一般是整个spring cloud里在Eureka注册中心的模块. zuul: ignored-services: '*' sensitiveHeaders: routes: ...

算法之名
17分钟前
8
0
java按比例之原图生成缩略图

package com.wxp.test; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import javax.imageio.ImageIO; import sun.......

恋码之子
27分钟前
1
0
SpringCloud 微服务 (十五) 服务容错 Hystrix

壹 工作中的微服务架构,某个服务通常会被多个服务调用或者多层调用完成需求,如果某个服务不可用,导致一个系统功能不可用或者服务直接没用了的情况,这种情况称为雪崩效应 有A服务调用B服务,B服...

___大侠
29分钟前
0
0
Spring框架中的设计模式(五)

Spring框架中的设计模式(五) 通过以前的4篇文章,我们看到Spring采用了大量的关于创建和结构方面的设计模式。本文将描述属于行为方面的两种设计模式:命令和访问者。 前传: Spring框架中的...

瑞查德-Jack
32分钟前
0
0
解决phpstorm运行很卡问题!

phpStorm一旦达到这个临界值,所有智能提示、自动补全都失效了 这TM就很尴尬了,顿时感觉自己就是个废人了,纯手写代码跟便秘一样 众所周知phpStorm基于JAVA,那么这个内存限制肯定跟JAVA的虚...

sjcehui2010
35分钟前
0
0
javascript前端AES加密解密

参考了一下网上的代码加上自已的一些想法,修改,key也可以是中文, 要引入一个aes.js的js文件。 html代码 <html> <head> <title>AES加解密</title> <meta http-equiv="Content-Type"......

oisan_
38分钟前
0
0
MacOS和Linux内核的区别

有些人可能认为MacOS和Linux内核有相似之处,因为它们可以处理类似的命令和类似的软件。甚至有人认为苹果的MacOS是基于linux的。事实上,这两个内核的历史和特性是非常不同的。今天,我们来看...

六库科技
43分钟前
0
0
Vue.js-自定义事件例子

自定义组件的 v-model 2.2.0+ 新增 一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件,但是像单选框、复选框等类型的输入控件可能会将 value 特性用于不同的目的。m...

tianyawhl
46分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部