利用蛇类食品进行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第三方库


热门话题
eclipse AST和JDT Java模型之间的主要区别是什么?   java访问jar文件中的外部库(jmf)   java读取简单json库文件   安全验证数字签名pdf java IText   java如何防止有人在JSP/Servlet中从浏览器修改输入表单参数   java有没有办法在JTree中为多个根使用扩展图标?   当我在IntelliJ IDEA下使用Lombok时,java无法编译项目   java Log4j不向linux系统日志发送日志   Java中的字符转换正则表达式   java如何在Glide上显示gif   java如何解析正弦函数?   slick2d Java slick:翻译   datetime java DateFormat给出了奇怪的格式结果   java如何让一个简单的HelloWorld应用程序在Spring Boot中运行   java如何在带有JUnit的Maven项目中通过自定义类加载器两次加载同一类   java PDFBox。生成具有相同图像的多页文档   JavaJSF外部链接   java Google NLP api无法找到TLS ALPN提供商;没有可用的工作网络、密码或码头NPN/ALPN   面向对象的纸牌游戏的java类图,可处理多达21点的纸牌