动态库优化方法、装置、设备及存储介质制造方法及图纸

技术编号:29087103 阅读:21 留言:0更新日期:2021-06-30 09:51
本申请提供了一种动态库优化方法、装置、设备及存储介质,其中,该方法包括:将待优化的动态库编译为目标静态库,将目标静态库链接到调用动态库的至少一个目标程序,生成每个目标程序的可执行文件,根据动态库对应的多个函数标识和每个目标程序的可执行文件对应的多个执行函数标识,确定动态库中的冗余函数并从动态库中删除冗余函数。本申请通过对比动态库和以静态链接方式得到的可执行文件对应的函数标识,确定动态库中的冗余函数,大大缩短了冗余函数的搜索时间,并且提高了冗余函数的精准度。度。度。

【技术实现步骤摘要】
动态库优化方法、装置、设备及存储介质


[0001]本申请涉及计算机
,具体而言,涉及一种动态库优化方法、装置、设备及存储介质。

技术介绍

[0002]嵌入式设备由于成本控制的原因,内存及闪存空间都是有限的,在版本迭代的过程中,由于动态库中不需要的冗余函数没有及时删除,导致程序体积越来越大,最终由于空间限制无法在嵌入式设备中运行。
[0003]相关技术中,需要手动搜索应用程序的代码以确定其调用的函数名称,将动态库中没有被调用的函数认为是冗余函数,然后删除动态库中的冗余函数。
[0004]然而,采用手动搜索的方式,费时费力的同时可能会出现遗漏的情况。

技术实现思路

[0005]本申请的目的在于,针对上述现有技术中的不足,提供一种动态库优化方法、装置、设备及存储介质,以解决现有技术中手动搜索费时费力并且可能遗漏的问题。
[0006]为实现上述目的,本申请实施例采用的技术方案如下:
[0007]第一方面,本申请一实施例提供了一种动态库优化方法,所述方法包括:
[0008]将待优化的动态库编译为目标静态库;
[0009]将所述目标静态库链接到调用所述动态库的至少一个目标程序,生成每个目标程序的可执行文件;
[0010]根据所述动态库对应的多个函数标识和所述每个目标程序的可执行文件对应的多个执行函数标识,确定所述动态库中的冗余函数并从所述动态库中删除所述冗余函数。
[0011]在一可选的实施方式中,所述根据所述动态库对应的多个函数标识和所述每个目标程序的可执行文件对应的多个执行函数标识,确定所述动态库中的冗余函数并删除所述冗余函数之前,所述方法还包括:
[0012]采用字符串查找工具,获取所述动态库中的多个可打印字符串;
[0013]采用函数标识转换工具,将所述多个可打印字符串转换为所述多个函数标识。
[0014]在一可选的实施方式中,所述采用函数标识转换工具,将所述多个可打印字符串转换为所述多个函数标识,包括:
[0015]采用所述函数标识转换工具,对所述多个可打印字符串进行转换,获取多个转换后的字符串;
[0016]若所述多个转换后的字符串中存在与转换前的可打印字符串不同的多个目标字符串,则将所述多个目标字符串作为所述多个函数标识。
[0017]在一可选的实施方式中,所述根据所述动态库对应的多个函数标识和所述每个目标程序的可执行文件对应的多个执行函数标识,确定所述动态库中的冗余函数并删除所述冗余函数,包括:
[0018]根据所述多个函数标识中,与所述多个执行函数标识不同的函数标识,确定所述冗余函数的标识。
[0019]在一可选的实施方式中,所述根据所述多个函数标识中,与所述多个执行函数标识不同的函数标识,确定所述冗余函数的标识,包括:
[0020]将所述多个函数标识,存储至第一函数标识文件中;
[0021]将所述多个执行函数标识,存储至所述每个目标程序的第二函数标识文件;
[0022]根据存在于所述第一函数标识文件、且不存在于所述第二函数标识文件的函数标识,确定所述冗余函数的标识。
[0023]在一可选的实施方式中,若所述目标程序为多个,所述根据存在于所述第一函数标识文件、且不存在于所述第二函数标识文件的函数标识,确定所述冗余函数的标识,包括:
[0024]将存在于所述第一函数标识文件、且不存在于所述第二函数标识文件的函数标识,存储至所述每个目标程序的第三函数标识文件;
[0025]将所述多个目标程序的第三函数标识文件中均存在的函数标识,确定为所述冗余函数的标识。
[0026]在一可选的实施方式中,所述从所述动态库中删除所述冗余函数,包括:
[0027]将所述冗余函数的标识存储至第四函数标识文件;
[0028]根据所述第四函数标识文件,从所述动态库中删除所述冗余函数。
[0029]第二方面,本申请另一实施例提供了一种动态库优化装置,所述装置包括:
[0030]编译模块,用于将待优化的动态库编译为目标静态库;
[0031]处理模块,用于将所述目标静态库链接到调用所述动态库的至少一个目标程序,生成每个目标程序的可执行文件;根据所述动态库对应的多个函数标识和所述每个目标程序的可执行文件对应的多个执行函数标识,确定所述动态库中的冗余函数,从所述动态库中删除所述冗余函数。
[0032]在一可选的实施方式中,还包括:
[0033]获取模块,用于采用字符串查找工具,获取所述动态库中的多个可打印字符串;
[0034]处理模块,还用于采用函数标识转换工具,将所述多个可打印字符串转换为所述多个函数标识。
[0035]在一可选的实施方式中,处理模块,具体用于:
[0036]采用所述函数标识转换工具,对所述多个可打印字符串进行转换,获取多个转换后的字符串;
[0037]若所述多个转换后的字符串中存在与转换前的可打印字符串不同的多个目标字符串,则将所述多个目标字符串作为所述多个函数标识。
[0038]在一可选的实施方式中,处理模块,具体用于:
[0039]根据所述多个函数标识中,与所述多个执行函数标识不同的函数标识,确定所述冗余函数的标识。
[0040]在一可选的实施方式中,处理模块,具体用于:
[0041]将所述多个函数标识,存储至第一函数标识文件中;
[0042]将所述多个执行函数标识,存储至所述每个目标程序的第二函数标识文件;
[0043]根据存在于所述第一函数标识文件、且不存在于所述第二函数标识文件的函数标识,确定所述冗余函数的标识。
[0044]在一可选的实施方式中,处理模块,具体用于:
[0045]将存在于所述第一函数标识文件、且不存在于所述第二函数标识文件的函数标识,存储至所述每个目标程序的第三函数标识文件;
[0046]将所述多个目标程序的第三函数标识文件中均存在的函数标识,确定为所述冗余函数的标识。
[0047]在一可选的实施方式中,处理模块,具体用于:
[0048]存储模块,用于将所述冗余函数的标识存储至第四函数标识文件;
[0049]根据所述第四函数标识文件,从所述动态库中删除所述冗余函数。
[0050]第三方面,本申请另一实施例提供了一种嵌入式设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的计算机程序,当嵌入式设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面任一项所述的方法。
[0051]第四方面,本申请另一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一项所述的方法。
[0052]本申请提供了一种动态库优化方法、装置、设备及存储介质,其中,该方法包括:将待优化的动态库编译为目标静态库,将目标静态库本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种动态库优化方法,其特征在于,包括:将待优化的动态库编译为目标静态库;将所述目标静态库链接到调用所述动态库的至少一个目标程序,生成每个目标程序的可执行文件;根据所述动态库对应的多个函数标识和所述每个目标程序的可执行文件对应的多个执行函数标识,确定所述动态库中的冗余函数并从所述动态库中删除所述冗余函数。2.根据权利要求1所述的方法,其特征在于,所述根据所述动态库对应的多个函数标识和所述每个目标程序的可执行文件对应的多个执行函数标识,确定所述动态库中的冗余函数并删除所述冗余函数之前,所述方法还包括:采用字符串查找工具,获取所述动态库中的多个可打印字符串;采用函数标识转换工具,将所述多个可打印字符串转换为所述多个函数标识。3.根据权利要求2所述的方法,其特征在于,所述采用函数标识转换工具,将所述多个可打印字符串转换为所述多个函数标识,包括:采用所述函数标识转换工具,对所述多个可打印字符串进行转换,获取多个转换后的字符串;若所述多个转换后的字符串中存在与转换前的可打印字符串不同的多个目标字符串,则将所述多个目标字符串作为所述多个函数标识。4.根据权利要求1所述的方法,其特征在于,所述根据所述动态库对应的多个函数标识和所述每个目标程序的可执行文件对应的多个执行函数标识,确定所述动态库中的冗余函数并删除所述冗余函数,包括:根据所述多个函数标识中,与所述多个执行函数标识不同的函数标识,确定所述冗余函数的标识。5.根据权利要求4所述的方法,其特征在于,所述根据所述多个函数标识中,与所述多个执行函数标识不同的函数标识,确定所述冗余函数的标识,包括:将所述多个函数标识,存储至第一函数标识文件中;将所述多个执行函数标识,存储至所述每个目标程序的第二函数标识...

【专利技术属性】
技术研发人员:黄世炜
申请(专利权)人:厦门亿联网络技术股份有限公司
类型:发明
国别省市:

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

1