通用交叉编译方法及设备技术

技术编号:20621711 阅读:22 留言:0更新日期:2019-03-20 14:02
本发明专利技术实施例提供了一种通用交叉编译方法及设备。其中,所述方法包括:从待编译安装包中获取依赖包,对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包;将所述排序后的待编译安装包与交叉编译工具链结合,得到通用交叉编译框架;其中,所述通用交叉编译框架用于对程序代码进行编译,所述依赖包中包含待编译软件。本发明专利技术实施例提供的通用交叉编译方法及设备,通过在建立交叉编译框架的过程中引入依赖包依赖关系的自动化确定机制,方便了交叉编译的操作,提高了交叉编译的执行效率。

Universal Cross Compiling Method and Equipment

【技术实现步骤摘要】
通用交叉编译方法及设备
本专利技术实施例涉及计算机
,尤其涉及一种通用交叉编译方法及设备。
技术介绍
为了适配不同的硬件平台,经常会对相关软件进行交叉编译。例如,常用的开发和编译环境一般是x86平台,当开发代码需要跨平台运行,且目标平台并不能满足编译需求时。就需要用到交叉编译,将代码编译成可以在目标平台上运行的可执行程序。通常来说,交叉编译需要先在当前平台上搭建好目标平台的编译环境,再对代码进行编译,代码在编译过程中一般会有相应的依赖库,比如c的数据库及其python的各种包等等,只有先解决这些依赖库的编译,才能最终完成代码的编译。同时,代码的依赖库还会有其自身的依赖关系,正是这种复杂的依赖关系,使得交叉编译稍显复杂和困难。现有技术中大多只是对搭建编译环境的研究,或者编译方法性能的优化分析,并没有对这种复杂依赖关系的自动化解决方案。对于其他语言或者依赖包较少的应用程序,例如目前使用较多的python库的交叉编译并不能通用,并且整个框架搭建和使用都很繁琐和费时。因此,找到一种能够对依赖包依赖关系进行自动化确定的方法,并且该方法能够方便交叉编译的操作,提高交叉编译的执行效率,就成为业界亟待解决的技术问题。
技术实现思路
针对现有技术存在的上述问题,本专利技术实施例提供了一种通用交叉编译方法及设备。第一方面,本专利技术的实施例提供了一种通用交叉编译方法,包括:从待编译安装包中获取依赖包,对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包;将所述排序后的待编译安装包与交叉编译工具链结合,得到通用交叉编译框架;其中,所述通用交叉编译框架用于对程序代码进行编译,所述依赖包中包含待编译软件。进一步地,所述交叉编译工具链,包括:已经编译完成的交叉编译工具链或实时编译完成的交叉编译工具链。进一步地,所述从待编译安装包中获取依赖包,包括:获取所述待编译安装包的名称,将待编译安装包的名称存储至requirement列表,从存储了待编译安装包名称的requirement列表中获取依赖包,若所述依赖包不在所述存储了待编译安装包名称的requirement列表中,则将所述依赖包添加至存储了待编译安装包名称的requirement列表的末尾,并下载所述依赖包。进一步地,所述从待编译安装包中获取依赖包,包括:从已经准备完毕的待编译安装包中获取依赖包。进一步地,所述对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包,包括:根据存储了待编译安装包名称的requirement列表中存储的待编译安装包名称,生成requirement_old_list列表,从所述requirement_old_list列表中查找依赖关系文件,获取依赖包的依赖关系;其中,所述requirement_old_list列表用于存储需要查找依赖包依赖关系的待编译安装包。进一步地,在所述得到通用交叉编译框架之后,还包括:通过脚本向所述通用交叉编译框架中传送交叉编译需要的参数,采用所述通用交叉编译框架对程序代码进行交叉编译。进一步地,在所述采用所述通用交叉编译框架对程序代码进行交叉编译之后,还包括:删除解压后的待编译安装包,压缩打包编译完毕的安装包。第二方面,本专利技术的实施例提供了一种通用交叉编译装置,包括:依赖关系获取模块,用于从待编译安装包中获取依赖包,对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包;通用交叉编译框架获取模块,用于将所述排序后的待编译安装包与交叉编译工具链结合,得到通用交叉编译框架;其中,所述通用交叉编译框架用于对程序代码进行编译,所述依赖包中包含待编译软件。第三方面,本专利技术的实施例提供了一种电子设备,包括:至少一个处理器;以及与处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,处理器调用程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的通用交叉编译方法。第四方面,本专利技术的实施例提供了一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的通用交叉编译方法。本专利技术实施例提供的通用交叉编译方法及设备,通过在建立交叉编译框架的过程中引入依赖包依赖关系的自动化确定机制,方便了交叉编译的操作,提高了交叉编译的执行效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单的介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的通用交叉编译方法流程图;图2为本专利技术实施例提供的通用交叉编译装置结构示意图;图3为本专利技术实施例提供的电子设备的实体结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。另外,本专利技术提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本专利技术要求的保护范围之内。本专利技术实施例提供了一种通用交叉编译方法,参见图1,该方法包括:101、从待编译安装包中获取依赖包,对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包;102、将所述排序后的待编译安装包与交叉编译工具链结合,得到通用交叉编译框架。其中,所述通用交叉编译框架用于对程序代码进行编译,所述依赖包中包含待编译软件。本专利技术实施例提供的通用交叉编译方法,通过在建立交叉编译框架的过程中引入依赖包依赖关系的自动化确定机制,方便了交叉编译的操作,提高了交叉编译的执行效率。在上述实施例的基础上,本专利技术实施例中提供的通用交叉编译方法,所述交叉编译工具链,包括:已经编译完成的交叉编译工具链或实时编译完成的交叉编译工具链。在上述实施例的基础上,本专利技术实施例中提供的通用交叉编译方法,所述从待编译安装包中获取依赖包,包括:获取所述待编译安装包的名称,将待编译安装包的名称存储至requirement列表,从存储了待编译安装包名称的requirement列表中获取依赖包,若所述依赖包不在所述存储了待编译安装包名称的requirement列表中,则将所述依赖包添加至存储了待编译安装包名称的requirement列表的末尾,并下载所述依赖包。在上述实施例的基础上,本专利技术实施例中提供的通用交叉编译方法,所述从待编译安装包中获取依赖包,包括:从已经准备完毕的待编译安装包中获取依赖包。在上述实施例的基础上,本专利技术实施例中提供的通用交叉编译方法,所述对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包,包括:根据存储了待编译安装包名称的requirement列表中本文档来自技高网...

【技术保护点】
1.一种通用交叉编译方法,其特征在于,包括:从待编译安装包中获取依赖包,对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包;将所述排序后的待编译安装包与交叉编译工具链结合,得到通用交叉编译框架;其中,所述通用交叉编译框架用于对程序代码进行编译,所述依赖包中包含待编译软件。

【技术特征摘要】
1.一种通用交叉编译方法,其特征在于,包括:从待编译安装包中获取依赖包,对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包;将所述排序后的待编译安装包与交叉编译工具链结合,得到通用交叉编译框架;其中,所述通用交叉编译框架用于对程序代码进行编译,所述依赖包中包含待编译软件。2.根据权利要求1所述的通用交叉编译方法,其特征在于,所述交叉编译工具链,包括:已经编译完成的交叉编译工具链或实时编译完成的交叉编译工具链。3.根据权利要求1所述的通用交叉编译方法,其特征在于,所述从待编译安装包中获取依赖包,包括:获取所述待编译安装包的名称,将待编译安装包的名称存储至requirement列表,从存储了待编译安装包名称的requirement列表中获取依赖包,若所述依赖包不在所述存储了待编译安装包名称的requirement列表中,则将所述依赖包添加至存储了待编译安装包名称的requirement列表的末尾,并下载所述依赖包。4.根据权利要求1所述的通用交叉编译方法,其特征在于,所述从待编译安装包中获取依赖包,包括:从已经准备完毕的待编译安装包中获取依赖包。5.根据权利要求3所述的通用交叉编译方法,其特征在于,所述对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包,包括:根据存储了待编译安装包名称的requirement列表中存储的待编译安装包名称,生成requirement_old_list列表,从所述requirement_old_...

【专利技术属性】
技术研发人员:刘仙凤
申请(专利权)人:武汉思普崚技术有限公司
类型:发明
国别省市:湖北,42

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

1