[发明专利]依赖分析和程序编译方法、设备及存储介质有效
| 申请号: | 202010280806.6 | 申请日: | 2020-04-10 |
| 公开(公告)号: | CN113296777B | 公开(公告)日: | 2022-05-27 |
| 发明(设计)人: | 王欢明;张友东 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41 |
| 代理公司: | 北京太合九思知识产权代理有限公司 11610 | 代理人: | 张爱;刘戈 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 依赖 分析 程序 编译 方法 设备 存储 介质 | ||
1.一种依赖分析方法,包括:
对待分析程序的源代码和其它源代码分别进行编译,得到所述待分析程序的第一目标文件和所述其它源代码的至少一个第二目标文件;
根据所述第一目标文件和所述至少一个第二目标文件,确定所述待分析程序依赖的未定义符号;
从所述至少一个第二目标文件中,确定与所述未定义符号具有依赖关系的第三目标文件;
依据所述第三目标文件,生成所述待分析程序的源代码与所述其它源代码之间的依赖关系;
其中,所述根据所述第一目标文件和所述至少一个第二目标文件,确定所述待分析程序依赖的未定义符号,包括:
对所述第一目标文件包含的符号的类型进行分析,以识别出所述第一目标文件包含的基准未定义符号;所述基准未定义符号是指所述第一目标文件包含的未定义符号;
根据所述基准未定义符号和所述至少一个第二目标文件,确定所述未定义符号;
所述依据所述第三目标文件,生成所述待分析程序的源代码与所述其它源代码之间的依赖关系,包括:
从所述其它源代码中,确定所述第三目标文件对应的目标源代码;并生成所述待分析程序的源代码与所述目标源代码之间的依赖关系。
2.根据权利要求1所述的方法,所述根据所述基准未定义符号和所述至少一个第二目标文件,确定所述待分析程序依赖的未定义符号,包括:
对所述至少一个第二目标文件进行扫描,得到所述至少一个第二目标文件包含的符号;
根据所述基准未定义符号和所述至少一个第二目标文件包含的符号,确定所述未定义符号。
3.根据权利要求2所述的方法,所述根据所述基准未定义符号和所述至少一个第二目标文件包含的符号,确定所述未定义符号,包括:
从所述至少一个第二目标文件中,确定包含所述基准未定义符号的基准目标文件;
从所述基准目标文件中识别出除所述基准未定义符号之外的其它未定义符号;
将所述其它未定义符号作为新的基准未定义符号,并循环执行所述确定包含所述基准未定义符号的基准目标文件的操作,直至不再出现新的未定义符号为止;
将循环停止时已识别出的未定义符号作为所述未定义符号。
4.根据权利要求3所述的方法,从所述至少一个第二目标文件中,确定与所述未定义符号具有依赖关系的第三目标文件,包括:
将每次循环得到的基准目标文件作为所述第三目标文件。
5.根据权利要求1-4任一项所述的方法,在生成所述待分析程序的源代码与所述目标源代码之间的依赖关系之后,还包括:
根据所述依赖关系,对所述待分析程序的源代码进行编译,得到新的目标文件;
对所述新的目标文件进行代码链接,得到所述待分析程序的可执行文件。
6.根据权利要求5所述的方法,所述根据所述依赖关系,对所述待分析程序进行编译,包括:
根据所述依赖关系,从所述待分析程序包含的第一源代码中,删除除所述目标源代码之外的源代码;所述第一源代码为所述其它源代码中的部分或全部代码;
对所述待分析程序中保留的源代码进行重新编译,得到所述新的目标文件。
7.根据权利要求1-4任一项所述的方法,所述其它源代码为代码库中的源代码。
8.一种程序编译方法,包括:
获取待编译程序的源代码与其它源代码之间的依赖关系;所述依赖关系是根据所述待编译程序所依赖的符号中的未定义符号确定的;所述未定义符号是根据所述待编译程序的源代码编译得到的第一目标文件和所述其它源代码编译得到的至少一个第二目标文件确定的;
根据所述依赖关系,对所述待编译程序的源代码进行编译,得到所述待编译程序的目标文件;
对所述目标文件进行代码链接,得到所述待编译程序的可执行文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010280806.6/1.html,转载请声明来源钻瓜专利网。





