Doxygen+Graphviz

本文档详细介绍了如何利用Doxygen工具结合Graphviz生成高质量的软件文档,包括配置步骤及注意事项,帮助开发者更好地理解并掌握软件架构。

注释风格: http://www.cnblogs.com/wishma/archive/2008/07/24/1250339.html

GUI使用: http://wildpointer.net/2012/04/14/doxygen_graphviz/

配置选项说明: http://ticktick.blog.51cto.com/823160/188672

 

使用Graphviz需两步:

(1)Wizard --> Diagram --> Use dot tool from the Graphviz package

(2)Expert --> Dot --> DOT_PATH设置Graphviz的安装位置

 

设置源文件目录:

单个目录 Wizard --> Project --> Source code directory

多个目录 Expert --> Input --> Input

 

其他:

若使用了extern,则其他module的东西会被包含进这个module的文档中,这时可使用比@addtogroup优先级更高的@ingroup将extern部分排除

 

### DoxygenGraphviz 的配置与使用 #### 配置 Doxygen 以生成文档和图表 Doxygen 是一种强大的工具,能够从源代码中提取信息并生成多种格式的文档[^3]。为了实现更直观的功能调用关系展示,可以通过集成 Graphviz 来生成函数调用流程图和其他类型的图形化表示[^4]。 在配置过程中,需要编辑 `Doxyfile` 文件,这是 Doxygen 的主要配置文件。以下是几个重要的配置选项: - **EXTRACT_ALL**: 设置为 `YES` 表示即使某些类或成员未被显式标记,也会尝试从中提取所有可用的信息[^2]。 - **CALL_GRAPH** 和 **CALLER_GRAPH**: 如果希望生成函数调用图,则需分别设置这两个参数为 `YES`。它们用于显示某个函数调用了哪些其他函数(`CALL_GRAPH`),或者哪些函数调用了当前函数(`CALLER_GRAPH`)。 - **HAVE_DOT**: 此项应设为 `YES` 才能启用 Graphviz 支持功能,比如绘制继承树、协作图等复杂的关系网络[^1]。 另外还需要指定 DOT_PATH 参数指向本地安装好的 Graphviz dot 工具所在路径;如果没有正确设定该环境变量的话,上述基于 graphviz 的特性将无法正常工作。 #### 示例配置片段 下面给出一段典型的 `Doxyfile` 中关于开启 Graphviz 功能的部分配置例子: ```makefile # 开启Graphviz支持 HAVE_DOT = YES DOT_NUM_THREADS = 0 # 并行处理数量, 默认单线程即可满足大多数情况下的性能需求. # 启动各类调用关系图生成功能. CLASS_DIAGRAMS = YES COLLABORATION_GRAPHS = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES CALL_GRAPH = YES CALLER_GRAPH = YES # 定义dot可执行程序的位置(如果系统找不到它). DOT_PATH = ``` #### 创建基本 HTML 文档的过程概述 假设已经准备好了一个项目目录,并且其中包含了若干 C 或者 C++ 源文件(.c/.cpp),那么按照以下方式操作就可以得到初步的结果页面了: 1. 初始化一个新的 doxygen 配置文件:`doxygen -g MyProjectConfig` 2. 修改刚生成出来的名为"MyProjectConfig"的新配置文件中的必要字段值,特别是 INPUT 字段应该填写上实际存放待解析源码的地方; OUTPUT_DIRECTORY 则定义最终产物存储位置等等... 3. 调用命令启动整个过程:`doxygen MyProjectConfig` 完成之后,在指定的目标输出目录下将会看到一系列子文件夹及其内部包含的内容——主要是 index.html 页面作为入口点连接至其它部分资源材料。 #### 注意事项 尽管 Doxygen 提供了许多便利之处帮助开发者理解已有系统的架构设计思路,但在具体实践当中仍需要注意一些细节问题以免影响到最终效果质量的好坏程度: - 确保所有的头文件都被纳入扫描范围之内因为很多重要声明可能只存在于那里而不会重复出现在对应的实现单元里; - 对于宏定义之类的预处理器指令也要给予足够的重视,合理运用特殊标签如`\def`, `\macro`等加以描述以便更好地反映实际情况; - 当面对特别庞大的工程体系时考虑分模块逐步推进而不是试图一次性解决全部难题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值