利用蛇类食品进行C/C++依赖绘图
crowfood的Python项目详细描述
从C/C++代码中创建依赖文件以供使用 snakefood。 这允许您轻松地从C/C++代码库上创建文件/模块/文件夹/级别等的依赖图。
安装
必须在系统上安装python。
如果您还没有安装蛇食,请先使用pip install snakefood安装它。
现在用pip install crowfood安装crowfood。
如何创建依赖关系图
开始
让我们假设
A.c B.c ab/ A.h B.h
我们将通过管道crowfood的 snakefood的sfood-graph工具的依赖信息,用于创建点格式的图形 然后用dot本身可视化并保存到pdf文件:
cfood /libab | sfood-graph | dot -Tpdf > simple.pdf
crowfood可以处理许多文件夹布局,如果找不到#include,它将输出警告。 运行cfood --help查看有关文件夹布局和包含路径的所有选项。
tip:作为一个快速的解决方案或开始更大的项目, 使用--fuzzy让crowfood只按文件名搜索#include文件 忽略文件夹结构。
分组/聚类
根据项目的大小,以某种方式将文件组合在一起可能是有意义的。
一种方法是将匹配的源文件和头文件分组为“模块”:
cfood /libab --merge module | sfood-graph | dot -Tpdf > modules.pdf
另一种方法是根据路径前缀定义集群。 首先,创建一个文件clusters,该文件包含前缀:
componenta componentb/partc
然后运行:
cfood /bigproject | sfood-cluster -f clusters | sfood-graph | dot -Tpdf > clustered.pdf
看看snakefood docs 如何从crowfood中转换原始依赖输出得到更多的启示 对你的项目有意义。 始终记住,依赖项输出是基于行的,并且非常容易处理 标准Unix工具,例如用于筛选的grep。