预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN114356342A(43)申请公布日2022.04.15(21)申请号202210009069.5(22)申请日2022.01.05(71)申请人北京字节跳动网络技术有限公司地址100041北京市石景山区实兴大街30号院3号楼2层B-0035房间(72)发明人韦超(74)专利代理机构北京中知法苑知识产权代理有限公司11226代理人李明(51)Int.Cl.G06F8/41(2018.01)权利要求书2页说明书8页附图2页(54)发明名称一种编译方法及装置(57)摘要本公开实施例提供一种编译方法及装置,该方法首先获取待编译的目标代码,并确定编译所述目标代码所需的依赖描述信息;然后,基于依赖描述信息,以及所述目标代码的属性信息,确定所述目标代码的编译标识;最后,从数据库中查询与所述编译标识匹配的编译产物,将查询到的编译产物作为所述目标代码的编译结果。本公开实施例通过依赖描述信息和目标代码的属性信息进行编译产物的匹配,并将匹配到的编译产物作为目标代码的编译结果,从而不需要对目标代码进行编译,实现了节约计算资源的效果,并且,由于不需要对目标代码进行编译,还提高了获得编译产物的效率。CN114356342ACN114356342A权利要求书1/2页1.一种编译方法,其特征在于,包括:获取待编译的目标代码,并确定编译所述目标代码所需的依赖描述信息;基于依赖描述信息,以及所述目标代码的属性信息,确定所述目标代码的编译标识;从数据库中查询与所述编译标识匹配的编译产物,将查询到的编译产物作为所述目标代码的编译结果。2.根据权利要求1所述的方法,其特征在于,所述基于依赖描述信息,以及所述目标代码的属性信息,确定所述目标代码的编译标识,包括:基于依赖描述信息,以及所述目标代码的属性信息,确定与所述依赖描述信息及所述属性信息对应的哈希值;将确定的所述哈希值作为所述目标代码的编译标识。3.根据权利要求1或2所述的方法,其特征在于,所述确定编译所述目标代码所需的依赖描述信息,包括:对所述目标代码进行预编译处理,得到所述目标代码的依赖描述文件;所述依赖描述文件中包含编译所述目标代码所需要的各个依赖的头文件信息;将所述依赖描述文件中的各个所述头文件信息作为所述依赖描述信息。4.根据权利要求1所述的方法,其特征在于,所述目标代码的属性信息包括以下至少一种:所述目标代码的本体文件、所述目标代码的头文件、所述目标代码对应的编译器版本、所述目标代码对应的环境变量。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述数据库中不存在与所述编译标识匹配的编译产物,则调用所述目标代码对应的编译器对所述目标代码进行编译,得到所述目标代码的编译结果。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:将编译得到的编译结果作为与所述编译标识匹配的编译产物存储至所述数据库中。7.根据权利要求1所述的方法,其特征在于,所述从数据库中查询与所述编译标识匹配的编译产物,包括:从本地数据库中查询与所述编译标识匹配的编译产物;或者,向远端数据库对应的服务器发送针对所述编译标识的查询请求,以使所述服务器从数据库中查询并反馈与所述编译标识匹配的编译产物。8.一种编译装置,其特征在于,包括:获取模块,用于获取待编译的目标代码,并确定编译所述目标代码所需的依赖描述信息;确定模块,用于基于依赖描述信息,以及所述目标代码的属性信息,确定所述目标代码的编译标识;查询模块,用于从数据库中查询与所述编译标识匹配的编译产物,将查询到的编译产物作为所述目标代码的编译结果。9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的编译方法的2CN114356342A权利要求书2/2页步骤。10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任意一项所述的编译方法的步骤。3CN114356342A说明书1/8页一种编译方法及装置技术领域[0001]本公开涉及计算机技术领域,具体而言,涉及一种编译方法及装置。背景技术[0002]编译是利用编译程序从源语言编写的源程序产生目标程序的过程,也即将源语言变为计算机可以识别的二进制语言的过程。在应用程序的开发过程中,开发人员会不断修改应用程序的源代码,相应的,每修改一次源代码就需要对修改后的源代码进行编译,并且是全量编译,才能够对修改后的应用程序进行测试,而大多数情况下修改仅涉及源代码的一小部分,有大量的源代码被重复编译,并且,在多人协力开