[发明专利]依赖分析和程序编译方法、设备及存储介质有效
申请号: | 202010280806.6 | 申请日: | 2020-04-10 |
公开(公告)号: | CN113296777B | 公开(公告)日: | 2022-05-27 |
发明(设计)人: | 王欢明;张友东 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京太合九思知识产权代理有限公司 11610 | 代理人: | 张爱;刘戈 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 依赖 分析 程序 编译 方法 设备 存储 介质 | ||
本申请实施例提供一种依赖分析和程序编译方法、设备及存储介质。在本申请一些实施例中,可根据待分析程序的源代码编译得到的目标文件和其它源代码编译得到的目标文件,确定待分析程序依赖的未定义符号,并从其它源代码对应的目标文件中,确定与未定义符号具有依赖关系的目标文件;之后,依据与未定义符号具有依赖关系的目标文件,生成待分析程序的源代码与其它源代码之间的依赖关系。由于待分析程序的目标文件为待分析程序的源代码完整的编译结果,因此,基于待分析程序的目标文件和其它源代码的目标文件之间的依赖关系,生成待分析程序的源代码与其它源代码之间的依赖关系,有助于提高依赖分析的完整性和准确性。
技术领域
本申请涉及数据处理技术领域,尤其涉及一种依赖分析和程序编译方法、设备及存储介质。
背景技术
在软件开发过程中,经常会依赖现有代码库,这样可减少开发工作量。如果将软件所依赖的代码库中的代码全部编译,代码编译过程开销巨大;且最终产生的静态库文件体积较大,不便于软件的分发。
为了解决上述问题,在现有技术中,利用代码头文件,分析主程序所依赖的所有头文件。但是,这种依赖分析方式得到的依赖关系不完整,进而导致后续基于该依赖关系对软件进行编译时,编译出错。
发明内容
本申请的多个方面提供一种依赖分析和程序编译方法、设备及存储介质,用以提高依赖分析的完整性和准确性,进而有助于提高后续基于依赖分析结果进行程序编译的准确性。
本申请实施例提供一种依赖分析方法,包括:
对待分析程序的源代码和其它源代码分别进行编译,得到所述待分析程序的第一目标文件和所述其它源代码的至少一个第二目标文件;
根据所述第一目标文件和所述至少一个第二目标文件,确定所述待分析程序依赖的未定义符号;
从所述至少一个第二目标文件中,确定与所述未定义符号具有依赖关系的第三目标文件;
依据所述第三目标文件,生成所述待分析程序的源代码与所述其它源代码之间的依赖关系。
本申请实施例还提供一种程序编译方法,包括:
获取待编译程序的源代码与其它源代码之间的依赖关系;所述依赖关系是根据所述待编译程序所依赖的符号中的未定义符号确定的;
根据所述依赖关系,对所述待编译程序的源代码进行编译,得到所述待编译程序的目标文件;
对所述目标文件进行代码链接,得到所述待编译程序的可执行文件。
本申请实施例还提供一种计算机设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于:对待分析程序的源代码和其它源代码分别进行编译,得到所述待分析程序的第一目标文件和所述其它源代码的至少一个第二目标文件;根据所述第一目标文件和所述至少一个第二目标文件,确定所述待分析程序依赖的未定义符号;并从所述至少一个第二目标文件中,确定与所述未定义符号具有依赖关系的第三目标文件;以及依据所述第三目标文件,生成所述待分析程序的源代码与所述其它源代码之间的依赖关系。
本申请实施例还提供一种计算机设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于:获取待编译程序的源代码与其它源代码之间的依赖关系;所述依赖关系是根据所述待编译程序所依赖的符号中的未定义符号确定的;根据所述依赖关系,对所述待编译程序的源代码进行编译,得到所述待编译程序的第一目标文件;并对所述第一目标文件进行代码链接,得到所述待编译程序的可执行文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010280806.6/2.html,转载请声明来源钻瓜专利网。