源码查看利器-利用doxygen和graphviz将源码生成调用关系图
Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxygen可以从一套归档源文件开始,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。
官网:http://www.doxygen.nl/
百科:https://baike.baidu.com/item/Doxygen/1366536?fr=aladdin
Graphviz(Graph Visualization)是1990年代初诞生于AT&T的Bell实验室的一个开源的 (EPL授权)、跨平台 的 脚本自动化绘图软件工具。
Graphviz使用一种称为dot语言的DSL(Domain Special Language)语言编写Script File脚本文件,然后使用Layout布局引擎解析这个Script File脚本文件完成 自动化布局渲染 。
Doxygen和Graphviz结合使用, 完美的让代码以网页、图形、调用关系图图展现出来。方便阅览代码。
此方法优势: 不需要编译代码。根据需求,配置好参数,可利用命令直接输出结果。
开发环境: ubuntu
$ sudo apt-get install graphviz doxygen doxygen-gui
待安装完成后, 通过命令查看:
$ doxygen -v
1.8.11
执行用命令,将出现如下界面:
$ doxywizard
填写图中出现标注部分。点击【Next】
根据代码语言,选择对应项目。
按图中所示,设置对应项目。
这里是用到graphViz关键地方。
语言选择中文
[Expert]往下拉到[dot], DOT_PATH选择为/usr/bin。点击【Next】
此处可点击【Run doxygen】, 输出框会显示输出内容。
或者关闭窗口,保存配置项,通过命令生成文件。关闭窗口跳出如下框图:
选择【Save】,保存配置文件Doxyfile。
执行命令:doxygen Doxyfile, 待运行结束。
Png文件就是保存的调用关系图, html网页文件展示代码及关系图所有信息。可直接打开html网页文件查看内容。关系图示例:
将源码生成调用关系图还有很多方式,比如:
1. drafter 在iOS项目中自动生成函数调用关系图
https://blog.csdn.net/allanGold/article/details/89186582
2. 用Graphviz + CodeViz生成C/C++函数调用图
https://www.cnblogs.com/lanxuezaipiao/p/3450201.html
3. source insight
利用[Relation]功能,可展示几种关系图:树形,左右,上下