利用蛇类食品进行C/C++依赖绘图

crowfood的Python项目详细描述


https://travis-ci.org/neothemachine/crowfood.svg?branch=master

从C/C++代码中创建依赖文件以供使用 snakefood。 这允许您轻松地从C/C++代码库上创建文件/模块/文件夹/级别等的依赖图。

安装

必须在系统上安装python。

如果您还没有安装蛇食,请先使用pip install snakefood安装它。

现在用pip install crowfood安装crowfood。

如何创建依赖关系图

开始

让我们假设/LIABB是C/C++项目的根路径,其中包含:

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。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在JavaFX中使用FXML创建自定义对话框?   在应用程序完全关闭之前对服务器的java Android请求   java Formatter类不会在每次写入文本文件后保留数据   Gremlin Spark Java Maven项目查询响应缓慢   eclipse Java服务器和客户端   bean的属性id的java无getter方法   java将空值分配给int   安卓 studio 2.2中的java Sqlite   java如何为字符串到文件句柄的映射创建清理器?   java计算返回多个数据的标准差   联机运行JAVA应用程序并连接到网站以更新内容   使用Java DBCP连接到Cassandra   java寻找无向图中两个节点之间断开连接的最小权重   netbeans Java服务器软件在编译为可执行Jar时不接收连接   java从Json文件中获取数据   java如何使用protobufgradleplugin指定Protobuf路径   pdf iText冲压Java   java迫使Akka流将各个阶段融合在一起