Ubuntu下doxygen+graphviz使用概录
关键词:doxygen、Doxyfile、doxywizard、dot、graphviz等等。
使用doxygen从源码注释生成帮助文档或者SDK,输出格式有多种比如htmp、Latex等等。
如果想可视化头文件关系、函数调用关系,可以生成dot格式的布局方式;然后使用graphviz的dot工具生成可视化关系图。
这里面主要包括三部分:在代码中添加doxygen规则注释;生成doxygen配置文档doxyfile;graphviz的dot布局可视化配置。
使用doxygen的优点:
1. 注释紧跟代码,一条命令生成响应SDK,快捷、及时更新,容易维护。
2. 加上dot之后,函数关系、类关系等更加明确,有利于理解代码。
3. 输出格式丰富,适合各种形式发布。
4. 不同Doxyfile输出不同内容,适合对内对外发布。
0. 工具安装
需要安装doxygen、doxywizard、graphviz:
sudo apt install doxygen
sudo apt install doxygen-gui
sudo apt install graphviz graphviz-doc
1. doxygen介绍
关于doxygen的介绍在Doxygen Manual中有详细的说明,包括user manual、reference manual和information for developers三部分。
下图是doxygen信息流框图,按照文件doxyfile的配置,doxygen从sources中解析注释,输出结果,结果可以使XML、Latex、HTML、PDF等等。
2. 配置doxygen
doxygen的使用方法通过doxygen -h可以获取。
快速创建配置文件doxyfile的方式:
doxygen -s -g doxyfile--------------简化版的doxyfile,没有很多注释信息。
doxygen -g doxyfile
上面的创建方式比较简单,但是配置比较复杂。
doxygen-gui提供了doxywizard可视化配置工具。
doxywizard-----------------新建一个Doxyfile,并进行配置。
doxywizard Doxyfile--------从已有配置文件Doxyfile读取配置。
第一步,设置doxygen工作目录。
第二步,包括三部分分别是Wizard概要设置,Expert对功能进行专家模式设置,Run开始执行doxygen生成帮助文档。
如果要用好doxygen,就需要对Expert详细了解。
参考文档:《Doxywizard usage》
3. 如何给代码加doxygen注释
在《Documenting the code》中详细介绍了给不同语言添加注释的方法。
常用的功能包括个文件添加注释和函数添加注释。
比如文件注释:
/**
* @file usb_hidraw_api.c
* @author xxx
* @brief 操作hidraw设备接口open/close/read/write.
*/
显示结果如下:
添加函数注释:
/**
@brief 从hidraw设备读取数据。
@param fd hidraw设备句柄。
@param r_buf 读取函数缓存指针。
@param len 读取大小。
@return 0: 读取成功。\n
-1: 读取失败。
*/
int usb_read(int fd,char *r_buf,int len)
{
int ret;
char tmp_buf[];
if(r_buf == NULL) {
perror("usb_read::pointer error!");
return -;
} ret = read(fd, tmp_buf, len+);
if(ret < ) {
//printf("read data error %d\n",ret);
return -;
}
memcpy(r_buf,&tmp_buf[],len);
return ;
}
结果如下:
更多增强功能参考官网文档。
4. 使用graphviz的dot功能
使用graphviz的dot功能,可以生成详细的函数调用关系图、include关系图等,提高阅读效率。
通过Run的Show configuration可以查看配置信息:
下面看看对dot的配置:
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
MSCGEN_PATH =
DIA_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES----------------------------打开dot功能。
DOT_NUM_THREADS =
DOT_FONTNAME = Helvetica----------------------设置dot功能的字体和大小。
DOT_FONTSIZE =
DOT_FONTPATH =
CLASS_GRAPH = YES----------------------------类等关系图。
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
UML_LIMIT_NUM_FIELDS =
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES----------------------------include关系图。
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES----------------------------调用和被调用关系图。
CALLER_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png----------------------------dot输出的图像格式。
INTERACTIVE_SVG = NO
DOT_PATH = /usr/bin/dot-------------------一定要指定的系统中dot路径。
DOTFILE_DIRS =
MSCFILE_DIRS =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_INCLUDE_PATH =
DOT_GRAPH_MAX_NODES =
MAX_DOT_GRAPH_DEPTH =
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
生成的函数调用关系图:
include关系图:
Ubuntu下doxygen+graphviz使用概录的更多相关文章
- Ubuntu下三个实用的录屏软件
Ubuntu下三个实用的录屏软件 Kazam 优点: 易安装 可选择区域录制,也可全屏录制 有录屏和截图功能 安装: sudo apt-get install kazam 展示: Simple Scr ...
- 用Doxygen+Graphviz生成函数调用流程图(转)
源文链接: http://wildpointer.net/2012/04/14/doxygen_graphviz/ 上面这张图是用Doxygen+Graphviz从netcat的源代码生成的函数调用关 ...
- ubuntu 下安装 texlive 并设置 ctex 中文套装
1 安装 texlive2013 1.1 下载 texlive2013 下载地址:http://ftp.ctex.org/mirrors/CTAN/systems/texlive/Images/tex ...
- Ubuntu下录制和制作Gif图片--实战版
1.背景 ubuntu下,写文章的时候,经常用到Gif图片,这个自己怎么制作呢? 网上查了一下资料,大致的流程就是:安装 录屏软件(kazam) 和 视频 转 Jpeg 的工具(mplayer) ,使 ...
- 使用Doxygen + graphviz生成Unity 3d的UGUI类图
下载软件 1) Graphviz,下载地址:http://download.csdn.net/detail/u010953266/8591169 为什么不用官网?一是下载速度慢,二是下载到本地的文件貌 ...
- ubuntu下安装 Sublime Text 3 及 PlantUML 绘图插件
ubuntu下只想做C++的程序代码编写,最开始选择了codeblock,主要目的是安装简单,集成度高,还可以调试,但是用的时候老是无故退出,改了半天的代码就这样丢失,挺苦恼的,可能跟自己装的系统比较 ...
- ubuntu下中文乱码解决方案(全)
转自 http://www.cnblogs.com/end/archive/2011/04/19/2021507.html 1.ibus输入法 Ubuntu 系统安装后已经自带了ibus输入法,在 ...
- linux下常用的截图、录屏工具
录屏: 在linux下常用的录屏工具有5种,可以baidu或者google下喔,我选用的是recordMydesktop,使用非常方便,用时注意先把每秒桢数调高,否则效果必然很差. 在ubuntu下可 ...
- ubuntu下Open vSwitch安装
ubuntu下Open vSwitch安装 有关Open vSwitch的安装,网上有各种的教程资料,但一些已经过时,按照网上的教程,花费了大量时间,都没能安装成功.于是,通过查阅官方安装教程以及综合 ...
随机推荐
- springcloud Config 入门,带视频
疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 前言 Crazy ...
- 文件系统常用命令与fdisk分区
一.硬盘结构 1.硬盘的逻辑结构 硬盘的大小是使用"磁头数×柱面数×扇区数×每个扇区的大小"这样的公式来计算的.其中磁头数(Heads)表示硬盘总共有几个磁头,也可以理解成为硬盘有 ...
- com.alibaba.fastjson和net.sf.json的区别
JSON有两种结构 json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构 1.对象:对象在js中表示为“{}”括起来的内容, ...
- python3读取图像并可视化的方法(PIL/Pillow、opencv/cv2)
原图: 使用TensorFlow做图像处理的时候,会对图像进行一些可视化的操作.下面,就来列举一些我知道的图像读取并可视化的方法. 1. Pillow模块 1.1 Pillow模块的前生 Pillow ...
- 剑指offer笔记面试题5----替换空格
题目:请实现一个函数,把字符串中的每个空格替换成"20%".例如,输入"We are happy."则输出"We%20are%20happy.&quo ...
- 剑指Offer-42.和为S的两个数字(C++/Java)
题目: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 分析: ...
- 【GUI】基于V7开发板的裸机和各种RTOS版本的emWin程序模板,支持硬件JPEG,已发布(2019-05-26)
说明: 1.MDK请使用5.26及其以上版本,IAR请使用8.30及其以上版本. 2.修正了ST提供的部分驱动设计不合理的地方. 3.原创实现硬件JPEG添加到emWin中,实现简单,全程使用SDRA ...
- java中的this、super、static、final、abstract关键字的作用
this关键字的作用 1.this是对象内部指代自身的引用,同时也是解决成员变量和局部变量同名问题: 2.this可以调用成员变量,不能调用局部变量: 3.this也可以调用成员方法,但在普通方法中可 ...
- mysql分布式
一,复制,对数据进行备份,实现搞可用,提高吞吐量,实现高性能. 1,主从架构 2,多主架构 3,主主从从 4,主备 (实际用得多) 二,分片/分库分表 () 1,垂直拆分 1,垂直分表 2,垂直分库 ...
- MFC图形编辑界面工具
一.背景 喔,五天的实训终于结束了,学校安排的这次实训课名称叫高级程序设计实训,但在我看来,主要是学习了Visual C++ .NET所提供的MFC(Microsoft Foundation Clas ...