文章目录

  • 前言
  • 一、依赖关系是什么?
  • 二、支持的功能
  • 总结

前言

终于更新一个小的python项目来一起动手学习了,今天想看看Redis源码,可惜太慢太多,思维太乱,于是想到看是否用Python可以分析出这个源码直接的依赖关系。

一、依赖关系是什么?

这里说的依赖关系指的是,假设有一个C/C++程序,如下redis-cli.c:

#include “fmacros.h”
#include “version.h”
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <time.h>
#include <ctype.h>
#include <errno.h>
#include <sys/stat.h>
针对这个文件它引入了多个头文件,当很多个c程序放到一块的时候,比如在阅读redis源码的时候,你又是如何知道本地文件之间的依赖关系呢?

是不是很乱,也没有框架感,于是今天这个项目就是解决这种问题,上述就可以得到当前c/c++文件下有多少个头文件,相互之间的依赖关系图。

于是,我们今天这个项目出来了,代码行数很少,但是我个人觉得非常有意思,也非常使用。

下面让我来给大家分析与展示实现思路。下面放上我的代码地址(或者点击阅读原文),如果你需要,欢迎去下载,非常感谢你可以顺手star!

https://github.com/Light-City/PyLookSrcRelation

二、支持的功能

目前支持如下功能:

√输出定制,可输出pdf、png、jpg、svg等格式

√是否展示出系统头文件

√支持文件夹扫描所有依赖关系

√支持单个文件依赖关系

√支持C与C++源码依赖

ok,以上就是目前所有的功能。

如何使用:

clone 下载

git clone git@github.com:Light-City/PyLookSrcRelation.git
用户设置如下:
-s参数为在c/c++程序中寻找的头文件信息,默认为’#include ’
-d参数为文件夹或者c、c++文件
-i参数为包含系统头文件,如果添加这个参数就是包含,不加就是不包含。
-o参数为输出格式,默认值为pdf,可以选择png、svg等

python pylsr.py -h
usage: search.py [-h] [-s S] [-d D] [-i] [-o O]

Help you understand the source code.

optional arguments:
-h, --help show this help message and exit
-s S, --s S search xx.c/xx.cpp/xx.h etc
-d D, --d D your c/cpp file or c/cpp dir
-i, --i if you add this config,it will include the head file
-o O, --o O output format
只需修改这四个参数,即可实现以上所有功能。

示例1:读取文件夹,解析所有的c/c++程序的头文件依赖关系,并输出pdf格式文件。

python pylsr.py -d ‘./src/’ -o ‘pdf’

示例2:读取文件,解析c++程序的头文件依赖关系,并输出png格式文件。

python pylsr.py -d ‘test.cpp’ -o ‘png’


示例3:读取文件,解析c++程序的头文件依赖关系,包含系统头文件,并输出svg格式文件。

python pylsr.py -d ‘redis-cli.c’ -i -o ‘svg’

总结

以上就是今天要讲的内容

【Python】如何利用python对c程序源码进行协助解读(学会事半功倍)相关推荐

  1. 计算机毕业设计Python+django 宠物领养中心小程序(源码+系统+mysql数据库+Lw文档)

    项目介绍 据世界动物保护协会统计,全世界大概有5亿只流浪狗和散养的狗和大致同样数量的流浪猫,而这些主要源于主人的弃养.同时,在很多地区,狗和猫都处于散养状态,这部分的动物,也经常会变成流浪动物.猫和狗 ...

  2. [附源码]计算机毕业设计Python+uniapp安卓日程管理APPqksh9(程序+源码+LW+远程部署)

    [附源码]计算机毕业设计Python+uniapp安卓日程管理APPqksh9(程序+源码+LW+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配置: Pyt ...

  3. [附源码]计算机毕业设计Python保护濒危动物公益网站(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  4. [附源码]计算机毕业设计Python的连锁药店销售管理系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  5. [附源码]计算机毕业设计Python基于web的羽毛球管理系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  6. [附源码]计算机毕业设计Python校园代取快递系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  7. [附源码]计算机毕业设计Python的在线作业批改系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  8. [附源码]计算机毕业设计Python拉勾教育课程管理系统(程序+源码+LW文档)

    该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+N ...

  9. python玛丽冒险超级游戏程序源码

    wx供重浩:创享日记 对话框发送:python玛丽 免费获取完整源码源文件+配置教程说明+可执行文件 在PyCharm中运行<玛丽冒险>即可进入如图1所示的游戏主界面. 具体的操作步骤如下 ...

最新文章

  1. Python源码学习:Python类机制分析-用户自定义类
  2. c#后台线程更新界面
  3. c语言p1-melepeo,学生选课系统c语言程序代码
  4. J2EE中的各种工程的介绍
  5. linux 源码搭建lnmp_详解CentOS 7.0源码包搭建LNMP 实际环境搭建
  6. 05.SpringBoot的yml配置详解
  7. 如何读出烧录程序.bin的数据_如何改变程序搜索数据的方式?使用Redis进行搜索...
  8. 景嘉微变更会计师事务所引发投资者担忧
  9. Java 树形结构数据生成导出excel文件
  10. Wing Loss 论文阅读笔记
  11. python dask_使用Python并行框架Dask处理和分析大规模时空数据
  12. ios应用相关的性能优化及参考文档
  13. Intel英特尔历代经典 CPU 产品回顾
  14. 嘉明的云计算与大数据学习之大数据综合实验案例
  15. 迅速崛起!AICS正在引领区块链的未来!
  16. 【iCore4 双核心板_uC/OS-II】例程九:消息队列
  17. 教你如何一秒钟学会翻书动画相册
  18. 快讯 | 三创文创项目参展清华文创嘉年华
  19. html video标签 mp3,html5中的video标签和audio标签详解
  20. MacPro2018抹盘重装提示“安装需要下载重要内容。该内容此时无法下载。请稍后再试”问题解决

热门文章

  1. 联想Lico+singularity容器制作+anaconda3安装教程
  2. linux qt编译命令,linux下使用命令模式去编译Qt程序
  3. rua出300道四则运算题
  4. 在ORACLE中用DBCA创建数据库
  5. 下载文件同时添加水印文字
  6. 服务器管理口安装系统,管理口安装服务器操作系统
  7. RocketMQ消费失败重试机制分析
  8. ffmpeg mp4和yuv互转
  9. 台湾dotnet程序员之家
  10. 详解train_test_split()函数(官方文档有点不说人话)