Doxygen + graphviz + Windows Help Workshop+cmake+windows

Doxgen可以直接从源代码中抽取注释等内容,生成HTML格式的帮助文档;

Doxgen配合graphviz可以从代码中抽取类的关系图;

Doxgen配合Windows Help Workshop可以将生成的HTML文档合成一个chm帮助文档。

Doxgen、graphviz、Windows Help Workshop的使用可以参考:

https://blog.youkuaiyun.com/u010740725/article/details/51387810

https://blog.youkuaiyun.com/imgcl/article/details/79480350

https://www.cnblogs.com/peterYong/p/6556706.html

用cmake编译开源代码时,很多都有build_doc这个选项,勾选后需要找到这两个文件的位置:

E:/Program Files/doxygen/bin/doxygen.exe;

E:/Program Files (x86)/graphviz-2.38/release/bin/dot.exe;

cmake自己找不到的话就得手动设置。

我用cmake生成解决方案后再vs的编译过程中出现了两个错误:

1,Doxygen error: failed to run html help compiler on index.hhp

2,When enabling GENERATE_HTMLHELP the tree view (GENERATE_TREEVIEW) should be disabled. I'll do it for you.

第一个错误是Windows Help Workshop安装不正确,首先要保证Windows Help Workshop安装后环境变量设置的路径正确,然后要保证cmake生成的Doxyfile文件中hhc.exe(Windows Help Workshop的应用程序)路径设置正确,cmake一般会默认设置为C:\Program Files (x86)\HTML Help Workshop,与你安装路径不符的话改过来。

第二个错误也是要在Doxyfile文件中改,把GENERATE_TREEVIEW选项改为NO就可以了。




### 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`等加以描述以便更好地反映实际情况; - 当面对特别庞大的工程体系时考虑分模块逐步推进而不是试图一次性解决全部难题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值