应用程序的编译方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:38220186 阅读:9 留言:0更新日期:2023-07-25 17:51
本发明专利技术实施例提供了一种应用程序的编译方法、装置、电子设备及可读存储介质,所述应用程序运行于操作系统,所述方法包括:获取缓存文件;获取待引入所述应用程序的程序组件;从所述程序组件中获取第二定义符号;从所述缓存文件中获取与所述第二定义符号匹配的第一定义符号作为目标定义符号;将所述目标定义符号对应的所述系统标识所对应的所述系统库确定为目标系统库;在所述应用程序中引入所述目标系统库和所述程序组件后对所述应用程序进行编译。本发明专利技术实施例既降低了应用程序编译错误的概率,又提高了应用程序的编译效率。又提高了应用程序的编译效率。又提高了应用程序的编译效率。

【技术实现步骤摘要】
应用程序的编译方法、装置、电子设备及可读存储介质


[0001]本专利技术实施例涉及计算机
,特别是涉及一种应用程序的编译方法、一种应用程序的编译装置、一种电子设备以及一种计算机可读存储介质。

技术介绍

[0002]在多个应用程序(App,Application)场景下,经常存在不同应用程序之间的业务迁移、基础库依赖对齐、SDK(Software Development Kit,开发者工具包)版本对齐等一些业务场景。不管是业务迁移、基础库依赖对齐、开发者工具包版本对齐,或者重新接入一个新的第三方的开发者工具包等,均需要在应用程序的项目中引入所依赖的系统库,否则会因为由于编译器无法查找对应的系统库中的功能的定义而导致编译错误或者调用功能失败等情况。
[0003]然而,不同应用程序之间存在差异,因此各个应用程序所引入的系统库列表也不一致,只能由技术人员通过人工去寻找编译应用程序所依赖系统库的差异,进而确定应用程序的编译所需要依赖的系统库,导致应用程序的编译效率不高。

技术实现思路

[0004]本专利技术实施例是提供一种应用程序的编译方法、装置、电子设备以及计算机可读存储介质,以解决应用程序的编译效率不高的问题。
[0005]本专利技术实施例公开了一种应用程序的编译方法,所述应用程序运行于操作系统,所述方法包括:
[0006]获取缓存文件;所述缓存文件为根据所述操作系统提供的系统库的系统库标识和所述系统库中的第一定义符号生成;
[0007]获取待引入所述应用程序的程序组件
[0008]从所述程序组件中获取第二定义符号;
[0009]从所述缓存文件中获取与所述第二定义符号匹配的第一定义符号作为目标定义符号;
[0010]将所述目标定义符号对应的所述系统标识所对应的所述系统库确定为目标系统库;
[0011]在所述应用程序中引入所述目标系统库和所述程序组件后对所述应用程序进行编译。
[0012]可选地,在所述获取缓存文件之前,所述方法还包括:
[0013]获取所述操作系统提供的系统库的可执行文件;所述可执行文件中包括符号表;
[0014]从所述系统库的所述符号表中获取所述系统库中的第一定义符号,并获取所述系统库的系统库标识;
[0015]根据所述系统库的所述系统库标识和所述系统库中的第一定义符号生成缓存文件。
[0016]可选地,所述系统库包括所述操作系统允许所述应用程序调用的公共系统库和禁止所述应用程序调用的私有系统库,所述从所述系统库的所述符号表中获取所述系统库中的第一定义符号,包括:
[0017]从所述公共系统库的所述符号表中获取所述公共系统库中的第一定义符号。
[0018]可选地,所述符号表中包括定义符号,所述定义符号包括内部定义符号和外部定义符号,所述定义符号包括内部定义符号和外部定义符号,所述外部定义符号为所述外部定义符号所对应的系统库所调用的其他系统库的内部定义符号。
[0019]可选地,所述从所述系统库的所述符号表中获取所述系统库中的第一定义符号,包括:
[0020]从所述系统库的所述符号表中获取所述系统库中的内部定义符号作为第一定义符号。
[0021]可选地,所述从所述程序组件中获取第二定义符号,包括:
[0022]从所述程序组件的可执行文件的符号表中获取外部定义符号,并将所述外部定义符号作为第二定义符号。
[0023]可选地,所述可执行文件至少包括Mach

O文件;所述缓存文件为JSON文件。
[0024]本专利技术实施例还公开了一种应用程序的编译装置,所述应用程序运行于操作系统,所述装置包括:
[0025]第一定义符号获取模块,用于获取缓存文件;所述缓存文件为根据所述操作系统提供的系统库的系统库标识和所述系统库中的第一定义符号生成;
[0026]程序组件获取模块,用于获取待引入所述应用程序的程序组件;
[0027]第二定义符号获取模块,用于从所述程序组件中获取第二定义符号;
[0028]定义符号匹配模块,用于从所述缓存文件中获取与所述第二定义符号匹配的第一定义符号作为目标定义符号;
[0029]依赖系统库确定模块,用于将所述目标定义符号对应的所述系统标识所对应的所述系统库确定为目标系统库;
[0030]应用程序编译模块,用于在所述应用程序中引入所述目标系统库和所述程序组件后对所述应用程序进行编译。
[0031]可选地,所述装置还包括:缓存文件生成模块,用于:
[0032]获取所述操作系统提供的系统库的可执行文件;所述可执行文件中包括符号表;
[0033]从所述系统库的所述符号表中获取所述系统库中的第一定义符号,并获取所述系统库的系统库标识;
[0034]根据所述系统库的所述系统库标识和所述系统库中的第一定义符号生成缓存文件。
[0035]可选地,所述系统库包括所述操作系统允许所述应用程序调用的公共系统库和禁止所述应用程序调用的私有系统库,所述缓存文件生成模块,具体用于:
[0036]从所述公共系统库的所述符号表中获取所述公共系统库中的第一定义符号。
[0037]可选地,所述符号表中包括定义符号,所述定义符号包括内部定义符号和外部定义符号,所述定义符号包括内部定义符号和外部定义符号,所述外部定义符号为所述外部定义符号所对应的系统库所调用的其他系统库的内部定义符号。
[0038]可选地,所述缓存文件生成模块,具体用于:
[0039]从所述系统库的所述符号表中获取所述系统库中的内部定义符号作为第一定义符号。
[0040]可选地,所述第二定义符号获取模块,具体用于:
[0041]从所述程序组件的可执行文件的符号表中获取外部定义符号,并将所述外部定义符号作为第二定义符号。
[0042]可选地,所述可执行文件至少包括Mach

O文件;所述缓存文件为JSON文件。
[0043]本专利技术实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
[0044]所述存储器,用于存放计算机程序;
[0045]所述处理器,用于执行存储器上所存放的程序时,实现如本专利技术实施例所述的方法。
[0046]本专利技术实施例还公开了一种计算机程序产品,该程序产品被存储在存储介质中,该计算机程序产品被至少一个处理器执行以实现如本专利技术实施例所述的方法。
[0047]本专利技术实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本专利技术实施例所述的方法。
[0048]本专利技术实施例包括以下优点:
[0049]在本专利技术实施例中,获取缓存文件,缓存文件为根据应用程序所运行于的操作系统提供的系统库的系统库标识和系统库中的第一定义符号生成,获取待引入应用程序的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序的编译方法,其特征在于,所述应用程序运行于操作系统,所述方法包括:获取缓存文件;所述缓存文件为根据所述操作系统提供的系统库的系统库标识和所述系统库中的第一定义符号生成;获取待引入所述应用程序的程序组件;从所述程序组件中获取第二定义符号;从所述缓存文件中获取与所述第二定义符号匹配的第一定义符号作为目标定义符号;将所述目标定义符号对应的所述系统标识所对应的所述系统库确定为目标系统库;在所述应用程序中引入所述目标系统库和所述程序组件后对所述应用程序进行编译。2.根据权利要求1所述的方法,其特征在于,在所述获取缓存文件之前,所述方法还包括:获取所述操作系统提供的系统库的可执行文件;所述可执行文件中包括符号表;从所述系统库的所述符号表中获取所述系统库中的第一定义符号,并获取所述系统库的系统库标识;根据所述系统库的所述系统库标识和所述系统库中的第一定义符号生成缓存文件。3.根据权利要求2所述的方法,其特征在于,所述系统库包括所述操作系统允许所述应用程序调用的公共系统库和禁止所述应用程序调用的私有系统库,所述从所述系统库的所述符号表中获取所述系统库中的第一定义符号,包括:从所述公共系统库的所述符号表中获取所述公共系统库中的第一定义符号。4.根据权利要求2所述的方法,其特征在于,所述符号表中包括定义符号,所述定义符号包括内部定义符号和外部定义符号,所述外部定义符号为所述外部定义符号所对应的系统库所调用的其他系统库的内部定义符号。5.根据权利要求4所述的方法,其特征在于,所述从所述系统库的所述符号表中获取所述系统库中的第一定义符号,包括:从所述系统库的所述符号表中获取所述系统库中的内部定义符号作为...

【专利技术属性】
技术研发人员:朴惠姝彭飞刘孟
申请(专利权)人:五八同城信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1