一、引子

用这两个工具可以自动的遍历代码,并且产生代码文档,我们先来看看效果,然后放出这两个工具的下载地址。

二、工具的下载地址

doxygen:http://www.stack.nl/~dimitri/doxygen/download.html

graphviz:http://www.graphviz.org/

三、使用步骤

首先安装doxygen,然后解压下载好的graphviz。接着打开doxygen,按照我下面的图示进行操作就好了。

最后点run就可以了。

附上doxygen能识别的一些注释,这里仅仅是比较常用的,不是全部。为了说明清楚,我把注释和代码一起贴上。

package com.example.kale.myapplication;

/**
* Created by Jack Tony on 2015/4/3.
* @brief 这个类是做什么的
*/
public class TestClass { /// 枚举
enum TYPE
{
TYPE_01,/*!< 枚举项01 */
TYPE_02,///< 枚举项02
}; /**
*
* <pre><b>copyright: kale</b></pre>
* <pre><b>email: </b>developer_kale@qq.com</pre>
* <pre><b>company: </b>http://www.cnblogs.com/tianzhijiexian/</pre>
* <pre><b>All rights reserved.</b></pre>
* @see 参考项 http://www.cnblogs.com/tianzhijiexian/
* @brief 方法的简单说明
* @author 作者的信息
* @date 2011/8/24 8:37:56
* @version 0.1
* @retval c 描述返回值的类型
* @note 注解,可以是详细的注解
* @remarks 备注事项(remaks)
* @attention 注意事项(attention)
* @warning 警告信息
* @param a 参数a的说明
* @param b 参数b的说明
* @return 本函数返回执行结果
*
* @throws Exception
*/
public String testFunction(int a, String b) throws Exception{
return "hello world";
}
}

输出的测试结果:

详细的步骤图片下载:http://download.csdn.net/detail/shark0017/8564357

下面的详细说明转自:http://blog.chinaunix.net/uid-23670869-id-2948890.html

Project页面,主要包括项目的基本配置。
             TAB_SIZE 主要是帮助文件中代码的缩进尺寸,譬如@code和@endcode段中代码的排版,建议符合习惯,设置成4。
             OPTIMIZE_OUTPUT_FOR_C 这个选项选择后,生成文档的一些描述性名称会发生变化,主要是符合C习惯。如果是纯C代码,建议选择。
             SUBGROUPING这个选项选择后,输出将会按类型分组。
               
         Build页面,这个页面是生成帮助信息中比较关键的配置页面
             EXTRACT_ALL 表示输出所有的函数,但是private和static函数不属于其管制。
             EXTRACT_PRIVATE 表示输出private函数。
             EXTRACT_STATIC 表示输出static函数。同时还有几个EXTRACT,相应查看文档即可。
             HIDE_UNDOC_MEMBERS 表示那些没有使用doxygen格式描述的文档(函数或类等)就不显示了。当然,如果EXTRACT_ALL被启用,那么这个标志其实是被忽略的。
             INTERNAL_DOCS 主要指是否输出注解中的@internal部分。如果没有被启动,那么注解中所有的@internal部分都将在目标帮助中不可见。
             CASE_SENSE_NAMES 是否关注大小写名称,注意,如果开启了,那么所有的名称都将被小写。对于C/C++这种字母相关的语言来说,建议永远不要开启。
             HIDE_SCOPE_NAMES 域隐藏,建议永远不要开启。
             SHOW_INCLUDE_FILES 是否显示包含文件,如果开启,帮助中会专门生成一个页面,里面包含所有包含文件的列表。
             INLINE_INFO 如果开启,那么在帮助文档中,inline函数前面会有一个inline修饰词来标明。
             SORT_MEMBER_DOCS 如果开启,那么在帮助文档列表显示的时候,函数名称会排序,否则按照解释的顺序显示。
             GENERATE_TODOLIST 是否生成TODOLIST页面,如果开启,那么包含在@todo注解中的内容将会单独生成并显示在一个页面中,其他的GENERATE选项同。
             SHOW_USED_FILES 是否在函数或类等的帮助中,最下面显示函数或类的来源文件。
             SHOW_FILES 是否显示文件列表页面,如果开启,那么帮助中会存在一个一个文件列表索引页面。

Messages页面主要用来设置编译时的输出信息选项。编译时的输出信息,主要可以用来提醒一些输入的错误语法。
             QUIET 如果开启,那么表示关闭编译时的输出信息。
             WARN_FORMAT 表示日志输出的格式,没必要修改。
             WARN_LOGFILE 表示信息是否输出到LOG文件,因为有DoxyWizard的存在,所以这个选项没有必要使用。

HTML页面
             CHM_FILE 表示输出的chm文件路径
             GENERATE_CHI 表示索引文件是否单独输出,建议关闭。否则每次生成两个文件,比较麻烦。             
             TOC_EXPAND 表示是否在索引中列举成员名称以及分组(譬如函数,枚举)名称。
             这个页面关系到生成chm的问题,不过很多选项很简单,一看便知。

Preprocessor 页面是预处理页面,里面也有一些配置,但是个人感觉使用默认就行了。其他的几个页面,基本上都要依赖于某些其他第三方的模块,尽管有些doxygen自带了,但是其详细说明,还得考读者自行研究。

同时附上常用的doxygen命令列表。注意doxygen的注解命令主要分成doxygen自建命令,HTML命令方式和XML命令方式。所有的命令都是以'\'或者'@'字符开头,这表明如果你的注释中有'\'开头的单词,你必须要修改成'\\'。

由于doxygen命令比较多,另外就是doxygen的帮助文档也是非常完善,所以,这里仅仅列举几个常用的命令,其他命令请自行参考帮助文件。

@addtogroup 添加到一个组。
@brief  概要信息
@deprecated 已废弃函数
@details  详细描述
@note  开始一个段落,用来描述一些注意事项
@par  开始一个段落,段落名称描述由你自己指定
@param  标记一个参数的意义
@code .. @endcode 包含一段代码
@fn  函数说明
@ingroup 加入到一个组
@return  描述返回意义
@retval  描述返回值意义
@include 包含文件

如何像MSDN那样在左边的树中显示函数列表?
       打开[Expert...]的HTML页面,然后选中TOC_EXPAND即可。

参考自:

http://blog.csdn.net/liuxuezong/article/details/6713807
http://www.cnblogs.com/homezzm/archive/2013/07/02/3166602.html
http://wenku.baidu.com/link?url=XtIQOfIvSriE9_MWDqhxsPfxm9OAVpCwcwkLunBVIr7Im9FVKBy9ZB2-ZdjiSpT0obgs8Gh12NXVs02oRJ54Sj3_S_N-UleYoFAAIf29XcG
http://www.xjtudll.cn/Exp/245/

http://blog.chinaunix.net/uid-23670869-id-2948890.html

用doxygen+graphviz自动化生成代码文档(附详细教程)的更多相关文章

  1. 使用JSDoc自动生成代码文档

    译者按: 代码要有规范的注释,遵从jsDoc规则来注释可以生成有用的文档. 原文: Generate docs and host it with JSDoc and GitHub Pages 译者:  ...

  2. golang学习之生成代码文档

    go doc 工具会从 Go 程序和包文件中提取顶级声明的首行注释以及每个对象的相关注释,并生成相关文档. 一般用法: go doc package 获取包的文档注释,例如:go doc fmt 会显 ...

  3. 【转载】doxygen+graphviz生成代码文档

    一.工具 doxygen:http://www.stack.nl/~dimitri/doxygen/download.html graphviz:http://www.graphviz.org/ 二. ...

  4. 【转】windows环境下利用doxygen生成代码文档

    作者:jiangwenna    http://www.jiangwenna.com/windows-doxygen-doc/ Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统 ...

  5. 代码文档生成工具-Doxygen生成CHM和RTF图文教程

    Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,可以从一套归档源文件开始,生成chm格式的文档.本文主要讲解如何在winddows下安装doxygen.     1.下载do ...

  6. doxygen 生成源码文档

    使用doxygen 生成源代码的文档是相当方便的,本文就简单整理下doxygen的使用说明 1. 安装 关于安装的问题不做特殊的说明,这里直接使用命令安装, 源码安装不做介绍 ubuntu: sudo ...

  7. 使用doxygen制作C代码文档

    使用doxygen制作C代码文档 C 代码注释风格约定 行间注释 /*! * * 这里是注释 * */ 行内注释 <code here> /*! 这里是注释 */ doxygen 风格的宏 ...

  8. appledoc导出iOS代码文档的使用和问题详解(干货篇)

    appledoc导出iOS代码文档的使用和问题详解(干货篇) 1. 简单说一下背景和自己感受 背景: 项目好像突然黄了,公司让详细写项目代码的注释并且导出文档,弄完之后就要封版. 说实话:听到这个消息 ...

  9. 使用SHFB(Sandcastle Help File Builder)建立MSDN风格的代码文档

    使用SHFB(Sandcastle Help File Builder)建立MSDN风格的代码文档 下载地址:http://sandcastle.codeplex.com/ 下载地址2:http:// ...

随机推荐

  1. svn diff excel

    https://github.com/solq360/compareExcel jdk 1.7 可自己编译1.6 每个sheet第一行不允许为空 SVN对比excel差异 适合策划.财务职业使用 sv ...

  2. 【PRML读书笔记-Chapter1-Introduction】1.5 Decision Theory

    初体验: 概率论为我们提供了一个衡量和控制不确定性的统一的框架,也就是说计算出了一大堆的概率.那么,如何根据这些计算出的概率得到较好的结果,就是决策论要做的事情. 一个例子: 文中举了一个例子: 给定 ...

  3. 初识js中的闭包

    今天看了关于js闭包方面的文章,还是有些云里雾里,对于一个菜鸟来说,学习闭包确实有一定的难度,不说别的,能够在网上找到一篇优秀的是那样的不易. 当然之所以闭包难理解,个人觉得是基础知识掌握的不牢,因为 ...

  4. UML系列04之 UML时序图

    概要 本章对UML的时序图进行介绍,主要内容包括:时序图介绍时序图组成 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3523355.html 时序图介绍 ...

  5. js 变量提升+方法提升

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. 转载:第四弹!全球首个微信小程序(应用号)开发教程!通宵吐血赶稿,每日更新!

    感谢大家支持!博卡君周末休息了两天,今天又回到战斗状态了.上周五晚上微信放出官方工具和教程了,推荐程序猿小伙伴们都去试一试,结合教程和代码,写写自己的 demo 也不错. 闲话不多说,开始更新! 第七 ...

  7. Scrum4.0+5.0 数独游戏

    1.题目: 1.准备看板. 形式参考图4. 2.任务认领,并把认领人标注在看板上的任务标签上. 先由个人主动领任务,PM根据具体情况进行任务的平衡. 然后每个人都着手实现自己的任务. 3.为了团队合作 ...

  8. Oracle Fusion Applications (11.1.8) Media Pack and Oracle Application Development Framework 11g (11.1.1.7.2) for Microsoft Windows x64 (64-bit)

    Oracle Fusion Applications (11.1.8) Media Pack for Microsoft Windows x64 (64-bit) 重新搜索   常见问题    提示  ...

  9. Unity实现滑页效果(UGUI)

    简介 项目需要...直接展示效果吧: 原理 使用UGUI提供的ScrollRect和ScrollBar组件实现基本滑动以及自己控制每次移动一页来达到滑页的效果. 实现过程 1.创建两个panel,上面 ...

  10. 在node.js中使用COOKIE

    node.js中如何向客户端发送COOKIE呢?有如下两个方案: 一.使用response.writeHead,代码示例: //设置过期时间为一分钟 var today = new Date(); v ...