一种交叉编译方法技术

技术编号:38320154 阅读:6 留言:0更新日期:2023-07-29 09:02
本发明专利技术提供一种交叉编译方法,包括:板卡端预先部署RNDIS;结合DHCP服务器和NFS服务器,板卡端跟PC端之间通信后免配置进行实时文件共享;PC端利用Docker容器技术,执行指令(run.sh),进入容器,容器后台利用DHCP客户端自动从板卡端获取IP地址,建立网络通讯,利用NFS客户端挂载NFS共享目录,作为交叉编译的逻辑根目录。辑根目录。辑根目录。

【技术实现步骤摘要】
一种交叉编译方法


[0001]本专利技术属于计算机
,具体涉及一种交叉编译方法。

技术介绍

[0002]在一种计算机环境中运行编译程序,把计算机目标代码编译成可以在另外一种计算机环境下运行的程序,这个编译过程为交叉编译,其使用的编译程序就是交叉编译工具链。
[0003]目前进行交叉编译的主要原因在于以下几方面:
[0004]①
Speed:目标平台的运行速度往往比主机慢得多,许多专用的嵌入式硬件被设计为低成本和低功耗,没有太高的性能。
[0005]②
Capability:整个编译过程是非常消耗资源的,嵌入式系统往往没有足够的内存或磁盘空间。
[0006]③
Availability:即使目标平台资源很充足,可以本地编译,但是第一个在目标平台上运行的本地编译器总需要通过交叉编译获得。
[0007]④
Flexibility:一个完整的Linux编译环境需要很多支持包,交叉编译使得不需要花时间将各种支持包移植到目标板上。
[0008]需要说明的是,进行交叉编译的必须工具就是交叉编译工具链,目前网络上能获取到一些针对特定CPU平台编译好的交叉工具链,如单独针对mips平台的交叉工具链,单独针对x86平台的交叉工具链。然而这些从网络上获取的交叉工具链存在以下问题:
[0009]1、传统交叉编译是每更新一次rootfs都要更新SYSROOT;
[0010]2、文件下载量过大;
[0011]3、须指定宿主机操作系统发行版本,有限制性,通用性不够;
[0012]4、操作复杂,不够方便简洁。

技术实现思路

[0013]本专利技术的目的在于提供一种交叉编译方法,以解决上述技术问题。
[0014]一种交叉编译方法,包括:
[0015]板卡端预先部署RNDIS;
[0016]结合DHCP服务器和NFS服务器,板卡端跟PC端之间通信后免配置进行实时文件共享;
[0017]PC端利用Docker容器技术,执行指令(run.sh),进入容器,容器后台利用DHCP客户端自动从板卡端获取IP地址,建立网络通讯,利用NFS客户端挂载NFS共享目录,作为交叉编译的逻辑根目录。
[0018]进一步,对于cmake工程,板卡端已预装cmake工具,并且把交叉编译相关的cmake环境变量预设保存在文件板卡端的cross.cmake中,用户只需要在PC端的CMakeList.txt文件中包含此文件即可进行交叉编译,免去复杂的环境配置。
[0019]进一步,对于qmake工程,板卡端已预装X86版的qmake命令,使用方法与寻常的qmake一样,因为已在板卡端的qmake.conf中把复杂的交叉编译环境变量处理好了。
[0020]进一步,通信方式为OTG

>UDC或以太网/WiFi。
[0021]进一步,交叉编译工具链接器逻辑根目录为SYSROOT或rootfs。
[0022]进一步,开发环境包括docker镜像方式。
[0023]本专利技术的积极进步效果在于:
[0024]1、采用docker容器部署开发环境,减少文件下载量,用户仅需下载2KB文件即可;
[0025]2、采用docker容器部署开发环境,无须指定宿主机操作系统发行版本,只要支持docker技术即可;
[0026]3、开发环境部署一次即可实时同步SYSROOT,而传统交叉编译则是每更新一次rootfs都要更新SYSROOT;
[0027]4、宿主机可以直接通过cp、rm等命令操作板卡上的文件,方便调试、方便部署APP。
附图说明
[0028]图1为本专利技术的功能示意图。
具体实施方式
[0029]为了使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示进一步阐述本专利技术。
[0030]参照图1,一种交叉编译方法,包括:
[0031]板卡端预先部署RNDIS;
[0032]结合DHCP服务器和NFS服务器,板卡端跟PC端之间通信后免配置进行实时文件共享;
[0033]PC端利用Docker容器技术,执行指令(run.sh),进入容器,容器后台利用DHCP客户端自动从板卡端获取IP地址,建立网络通讯,利用NFS客户端挂载NFS共享目录,作为交叉编译的逻辑根目录。
[0034]对于cmake工程,板卡端已预装cmake工具,并且把交叉编译相关的cmake环境变量预设保存在文件板卡端的cross.cmake中,用户只需要在PC端的CMakeList.txt文件中包含此文件即可进行交叉编译,免去复杂的环境配置。
[0035]对于qmake工程,板卡端已预装X86版的qmake命令,使用方法与寻常的qmake一样,因为已在板卡端的qmake.conf中把复杂的交叉编译环境变量处理好了。
[0036]通信方式为OTG

>UDC或以太网/WiFi。
[0037]交叉编译工具链接器逻辑根目录为SYSROOT或rootfs,rootfs.img仅用作离线编译,不能实时调试验证APP。
[0038]开发环境包括docker镜像方式,以此针对无外网访问权限的用户。
[0039]以上显示和描述了本专利技术的基本原理、主要特征和本专利技术的优点。本行业的技术人员应该了解,本专利技术不受上述实施例的限制,上述实施例和说明书中描述的只是说明本专利技术的原理,在不脱离本专利技术精神和范围的前提下,本专利技术还会有各种变化和改进,这些变化和改进都落入要求保护的本专利技术范围内。本专利技术要求保护范围由所附的权利要求书及其
等效物界定。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种交叉编译方法,其特征在于,包括:板卡端预先部署RNDIS;结合DHCP服务器和NFS服务器,板卡端跟PC端之间通信后免配置进行实时文件共享;PC端利用Docker容器技术,执行指令(run.sh),进入容器,容器后台利用DHCP客户端自动从板卡端获取IP地址,建立网络通讯,利用NFS客户端挂载NFS共享目录,作为交叉编译的逻辑根目录。2.如权利要求1所述的一种交叉编译方法,其特征在于,对于cmake工程,板卡端已预装cmake工具,并且把交叉编译相关的cmake环境变量预设保存在文件板卡端的cross.cmake中,用户只需要在PC端的CMakeList.txt文件中包含此文件即可进...

【专利技术属性】
技术研发人员:陈海满廖俊贤钟杰豪王乙全
申请(专利权)人:广州灵眸科技有限公司
类型:发明
国别省市:

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

1