[发明专利]一种依赖关系检测方法、装置、电子设备及存储介质在审
申请号: | 202011043960.8 | 申请日: | 2020-09-28 |
公开(公告)号: | CN112230979A | 公开(公告)日: | 2021-01-15 |
发明(设计)人: | 邓竹立;彭飞 | 申请(专利权)人: | 北京五八信息技术有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 吕俊秀 |
地址: | 100080 北京市海淀区学清*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 依赖 关系 检测 方法 装置 电子设备 存储 介质 | ||
本发明提供了一种依赖关系检测方法、装置、电子设备及存储介质。所述方法,包括:通过nm命令获取每个待检测文件的符号文本,所述待检测文件包括静态库、目标文件中的至少一种;根据每个所述待检测文件的符号文本,获取每个所述待检测文件的内部符号表和外部符号表,所述内部符号表中包括所述待检测文件中的内部符号,所述外部符号表中包括所述待检测文件中的外部符号;根据每个所述待检测文件的内部符号表和外部符号表,获取各个所述待检测文件之间的依赖关系。从而取得了在避免人工解析二进制文件的繁琐的同时,也避免大量的重复工作,提高依赖关系的检测效率的有益效果。
技术领域
本发明涉及计算机技术领域,尤其涉及一种依赖关系检测方法、装置、电子设备及存储介质。
背景技术
在开发过程中,经常使用一些第三方提供的SDK(Software Development Kit,软件开发工具包),如通过具有导航功能的第三方SDK提供地图导航功能,通过具有聊天功能的第三方SDK提供用户聊天功能,等等。而且,第三方SDK提供的可能不止一个静态库,各个静态库往往存在一定的依赖关系,梳理出静态库的依赖关系对架构调整有着重要的作用。
相关技术中,梳理静态库之间的依赖关系的主要技术手段是通过在测试项目中逐个接入静态库进行编译来完成。假设某SDK有2个静态库,分别是A、B,那么需要在一个测试的项目(例如随意创建的一个空的APP工程)中,分别独自接入A、独自接入B,然后分别编译,能编译链接成功的则说明当前接入的静态库不依赖任何一个静态库,如果报错,则说明其有依赖的静态库。假设独自接入A能编译链接成功,独自接入B链接失败,则说明A不依赖任何静态库,B有依赖的静态库。然后将A接入到B的工程中,如果编译链接由失败转为成功,则说明B依赖于A。
但是,如果某个SDK包含的静态库文件较多,那么测试的步骤将爆炸式增长,如果SDK与SDK之间存在依赖关系,那么上述梳理的技术成本将急剧增加。由此可见上述依赖关系检测过程存在操作复杂且耗时较长等技术问题。
发明内容
本发明实施例提供一种依赖关系检测方法、装置、电子设备及存储介质,以解决现有的依赖关系检测过程存在操作复杂且耗时较长的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种依赖关系检测方法,包括:
通过nm命令获取每个待检测文件的符号文本,所述待检测文件包括静态库、目标文件中的至少一种;
根据每个所述待检测文件的符号文本,获取每个所述待检测文件的内部符号表和外部符号表,所述内部符号表中包括所述待检测文件中的内部符号,所述外部符号表中包括所述待检测文件中的外部符号;
根据每个所述待检测文件的内部符号表和外部符号表,获取各个所述待检测文件之间的依赖关系。
可选地,所述根据每个所述待检测文件的符号文本,获取每个所述待检测文件的内部符号表和外部符号表的步骤,包括:
在所述待检测文件为静态库的情况下,根据所述静态库的符号文本,生成所述静态库中包含的每个目标文件的内部符号表和外部符号表;
根据所述静态库中包含的每个目标文件的内部符号表和外部符号表,生成所述静态库的内部符号表和外部符号表;
在所述待检测文件为目标文件的情况下,根据所述目标文件的符号文本,生成所述目标文件的内部符号表和外部符号表。
可选地,所述根据所述静态库的符号文本,生成所述静态库中包含的每个目标文件的内部符号表和外部符号表的步骤,包括:
查找所述符号文本中表征目标文件路径的文本行;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京五八信息技术有限公司,未经北京五八信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011043960.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种资源分配方法和装置
- 下一篇:一种精米生产方法