[发明专利]通用交叉编译方法及设备有效
申请号: | 201811243584.X | 申请日: | 2018-10-24 |
公开(公告)号: | CN109491661B | 公开(公告)日: | 2022-06-24 |
发明(设计)人: | 刘仙凤 | 申请(专利权)人: | 武汉思普崚技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 武汉智嘉联合知识产权代理事务所(普通合伙) 42231 | 代理人: | 黄君军 |
地址: | 430070 湖北省武汉市东湖新技术开发*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 通用 交叉 编译 方法 设备 | ||
本发明实施例提供了一种通用交叉编译方法及设备。其中,所述方法包括:从待编译安装包中获取依赖包,对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包;将所述排序后的待编译安装包与交叉编译工具链结合,得到通用交叉编译框架;其中,所述通用交叉编译框架用于对程序代码进行编译,所述依赖包中包含待编译软件。本发明实施例提供的通用交叉编译方法及设备,通过在建立交叉编译框架的过程中引入依赖包依赖关系的自动化确定机制,方便了交叉编译的操作,提高了交叉编译的执行效率。
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种通用交叉编译方法及设备。
背景技术
为了适配不同的硬件平台,经常会对相关软件进行交叉编译。例如,常用的开发和编译环境一般是x86平台,当开发代码需要跨平台运行,且目标平台并不能满足编译需求时。就需要用到交叉编译,将代码编译成可以在目标平台上运行的可执行程序。通常来说,交叉编译需要先在当前平台上搭建好目标平台的编译环境,再对代码进行编译,代码在编译过程中一般会有相应的依赖库,比如c的数据库及其python的各种包等等,只有先解决这些依赖库的编译,才能最终完成代码的编译。同时,代码的依赖库还会有其自身的依赖关系,正是这种复杂的依赖关系,使得交叉编译稍显复杂和困难。
现有技术中大多只是对搭建编译环境的研究,或者编译方法性能的优化分析,并没有对这种复杂依赖关系的自动化解决方案。对于其他语言或者依赖包较少的应用程序,例如目前使用较多的python库的交叉编译并不能通用,并且整个框架搭建和使用都很繁琐和费时。因此,找到一种能够对依赖包依赖关系进行自动化确定的方法,并且该方法能够方便交叉编译的操作,提高交叉编译的执行效率,就成为业界亟待解决的技术问题。
发明内容
针对现有技术存在的上述问题,本发明实施例提供了一种通用交叉编译方法及设备。
第一方面,本发明的实施例提供了一种通用交叉编译方法,包括:从待编译安装包中获取依赖包,对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包;将所述排序后的待编译安装包与交叉编译工具链结合,得到通用交叉编译框架;其中,所述通用交叉编译框架用于对程序代码进行编译,所述依赖包中包含待编译软件。
进一步地,所述交叉编译工具链,包括:已经编译完成的交叉编译工具链或实时编译完成的交叉编译工具链。
进一步地,所述从待编译安装包中获取依赖包,包括:获取所述待编译安装包的名称,将待编译安装包的名称存储至requirement列表,从存储了待编译安装包名称的requirement列表中获取依赖包,若所述依赖包不在所述存储了待编译安装包名称的requirement列表中,则将所述依赖包添加至存储了待编译安装包名称的requirement列表的末尾,并下载所述依赖包。
进一步地,所述从待编译安装包中获取依赖包,包括:从已经准备完毕的待编译安装包中获取依赖包。
进一步地,所述对所述待编译安装包中的依赖包之间的依赖关系进行排序,得到已排序的待编译安装包,包括:根据存储了待编译安装包名称的requirement列表中存储的待编译安装包名称,生成requirement_old_list列表,从所述requirement_old_list列表中查找依赖关系文件,获取依赖包的依赖关系;其中,所述requirement_old_list列表用于存储需要查找依赖包依赖关系的待编译安装包。
进一步地,在所述得到通用交叉编译框架之后,还包括:通过脚本向所述通用交叉编译框架中传送交叉编译需要的参数,采用所述通用交叉编译框架对程序代码进行交叉编译。
进一步地,在所述采用所述通用交叉编译框架对程序代码进行交叉编译之后,还包括:删除解压后的待编译安装包,压缩打包编译完毕的安装包。
第二方面,本发明的实施例提供了一种通用交叉编译装置,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉思普崚技术有限公司,未经武汉思普崚技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811243584.X/2.html,转载请声明来源钻瓜专利网。