CN116483374A - 一种交叉编译方法 - Google Patents
一种交叉编译方法 Download PDFInfo
- Publication number
- CN116483374A CN116483374A CN202310460362.8A CN202310460362A CN116483374A CN 116483374 A CN116483374 A CN 116483374A CN 202310460362 A CN202310460362 A CN 202310460362A CN 116483374 A CN116483374 A CN 116483374A
- Authority
- CN
- China
- Prior art keywords
- cross
- compiling
- qmake
- cmake
- nfs
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种交叉编译方法,包括:板卡端预先部署RNDIS;结合DHCP服务器和NFS服务器,板卡端跟PC端之间通信后免配置进行实时文件共享;PC端利用Docker容器技术,执行指令(run.sh),进入容器,容器后台利用DHCP客户端自动从板卡端获取IP地址,建立网络通讯,利用NFS客户端挂载NFS共享目录,作为交叉编译的逻辑根目录。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种交叉编译方法。
背景技术
在一种计算机环境中运行编译程序,把计算机目标代码编译成可以在另外一种计算机环境下运行的程序,这个编译过程为交叉编译,其使用的编译程序就是交叉编译工具链。
目前进行交叉编译的主要原因在于以下几方面:
①Speed:目标平台的运行速度往往比主机慢得多,许多专用的嵌入式硬件被设计为低成本和低功耗,没有太高的性能。
②Capability:整个编译过程是非常消耗资源的,嵌入式系统往往没有足够的内存或磁盘空间。
③Availability:即使目标平台资源很充足,可以本地编译,但是第一个在目标平台上运行的本地编译器总需要通过交叉编译获得。
④Flexibility:一个完整的Linux编译环境需要很多支持包,交叉编译使得不需要花时间将各种支持包移植到目标板上。
需要说明的是,进行交叉编译的必须工具就是交叉编译工具链,目前网络上能获取到一些针对特定CPU平台编译好的交叉工具链,如单独针对mips平台的交叉工具链,单独针对x86平台的交叉工具链。然而这些从网络上获取的交叉工具链存在以下问题:
1、传统交叉编译是每更新一次rootfs都要更新SYSROOT;
2、文件下载量过大;
3、须指定宿主机操作系统发行版本,有限制性,通用性不够;
4、操作复杂,不够方便简洁。
发明内容
本发明的目的在于提供一种交叉编译方法,以解决上述技术问题。
一种交叉编译方法,包括:
板卡端预先部署RNDIS;
结合DHCP服务器和NFS服务器,板卡端跟PC端之间通信后免配置进行实时文件共享;
PC端利用Docker容器技术,执行指令(run.sh),进入容器,容器后台利用DHCP客户端自动从板卡端获取IP地址,建立网络通讯,利用NFS客户端挂载NFS共享目录,作为交叉编译的逻辑根目录。
进一步,对于cmake工程,板卡端已预装cmake工具,并且把交叉编译相关的cmake环境变量预设保存在文件板卡端的cross.cmake中,用户只需要在PC端的CMakeList.txt文件中包含此文件即可进行交叉编译,免去复杂的环境配置。
进一步,对于qmake工程,板卡端已预装X86版的qmake命令,使用方法与寻常的qmake一样,因为已在板卡端的qmake.conf中把复杂的交叉编译环境变量处理好了。
进一步,通信方式为OTG->UDC或以太网/WiFi。
进一步,交叉编译工具链接器逻辑根目录为SYSROOT或rootfs。
进一步,开发环境包括docker镜像方式。
本发明的积极进步效果在于:
1、采用docker容器部署开发环境,减少文件下载量,用户仅需下载2KB文件即可;
2、采用docker容器部署开发环境,无须指定宿主机操作系统发行版本,只要支持docker技术即可;
3、开发环境部署一次即可实时同步SYSROOT,而传统交叉编译则是每更新一次rootfs都要更新SYSROOT;
4、宿主机可以直接通过cp、rm等命令操作板卡上的文件,方便调试、方便部署APP。
附图说明
图1为本发明的功能示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示进一步阐述本发明。
参照图1,一种交叉编译方法,包括:
板卡端预先部署RNDIS;
结合DHCP服务器和NFS服务器,板卡端跟PC端之间通信后免配置进行实时文件共享;
PC端利用Docker容器技术,执行指令(run.sh),进入容器,容器后台利用DHCP客户端自动从板卡端获取IP地址,建立网络通讯,利用NFS客户端挂载NFS共享目录,作为交叉编译的逻辑根目录。
对于cmake工程,板卡端已预装cmake工具,并且把交叉编译相关的cmake环境变量预设保存在文件板卡端的cross.cmake中,用户只需要在PC端的CMakeList.txt文件中包含此文件即可进行交叉编译,免去复杂的环境配置。
对于qmake工程,板卡端已预装X86版的qmake命令,使用方法与寻常的qmake一样,因为已在板卡端的qmake.conf中把复杂的交叉编译环境变量处理好了。
通信方式为OTG->UDC或以太网/WiFi。
交叉编译工具链接器逻辑根目录为SYSROOT或rootfs,rootfs.img仅用作离线编译,不能实时调试验证APP。
开发环境包括docker镜像方式,以此针对无外网访问权限的用户。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (6)
1.一种交叉编译方法,其特征在于,包括:
板卡端预先部署RNDIS;
结合DHCP服务器和NFS服务器,板卡端跟PC端之间通信后免配置进行实时文件共享;
PC端利用Docker容器技术,执行指令(run.sh),进入容器,容器后台利用DHCP客户端自动从板卡端获取IP地址,建立网络通讯,利用NFS客户端挂载NFS共享目录,作为交叉编译的逻辑根目录。
2.如权利要求1所述的一种交叉编译方法,其特征在于,对于cmake工程,板卡端已预装cmake工具,并且把交叉编译相关的cmake环境变量预设保存在文件板卡端的cross.cmake中,用户只需要在PC端的CMakeList.txt文件中包含此文件即可进行交叉编译,免去复杂的环境配置。
3.如权利要求1所述的一种交叉编译方法,其特征在于,对于qmake工程,板卡端已预装X86版的qmake命令,使用方法与寻常的qmake一样,因为已在板卡端的qmake.conf中把复杂的交叉编译环境变量处理好了。
4.如权利要求1所述的一种交叉编译方法,其特征在于,通信方式为OTG->UDC或以太网/WiFi。
5.如权利要求1所述的一种交叉编译方法,其特征在于,交叉编译工具链接器逻辑根目录为SYSROOT或rootfs。
6.如权利要求1所述的一种交叉编译方法,其特征在于,开发环境包括docker镜像方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310460362.8A CN116483374A (zh) | 2023-04-25 | 2023-04-25 | 一种交叉编译方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310460362.8A CN116483374A (zh) | 2023-04-25 | 2023-04-25 | 一种交叉编译方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116483374A true CN116483374A (zh) | 2023-07-25 |
Family
ID=87217489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310460362.8A Pending CN116483374A (zh) | 2023-04-25 | 2023-04-25 | 一种交叉编译方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483374A (zh) |
-
2023
- 2023-04-25 CN CN202310460362.8A patent/CN116483374A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102084816B1 (ko) | Bpram을 사용한 소프트웨어 애플리케이션들의 레이아웃 및 실행 | |
US10296323B2 (en) | System and method for fast initial and incremental deployment of apps | |
Chun et al. | Clonecloud: elastic execution between mobile device and cloud | |
CN105765534B (zh) | 虚拟计算系统和方法 | |
Chun et al. | Clonecloud: boosting mobile device applications through cloud clone execution | |
CN112256286B (zh) | 一种应用运行的方法、装置及计算机存储介质 | |
CN106325847B (zh) | 基于iOS平台获取应用程序功能的方法和装置 | |
CN105100191A (zh) | 一种云编译实现Java应用安装的方法、装置及系统 | |
CN107577609B (zh) | 一种基于主机端动态链接的嵌入式系统动态模块调试系统 | |
CN111580802B (zh) | 持续集成方法、基于分布式编译的持续集成方法及系统 | |
CN102760068B (zh) | 一种ActiveX插件加载方法和装置 | |
KR20150052107A (ko) | Bpram을 이용한 운영체제의 레이아웃 및 실행 | |
CN113986395B (zh) | 一种linux系统下应用依赖自包含技术的打包方法 | |
Jeong et al. | Seamless offloading of web app computations from mobile device to edge clouds via html5 web worker migration | |
CN112363731A (zh) | 一种应用自动化部署方法、装置和计算机可读存储介质 | |
CN111066000B (zh) | 对在托管运行时环境中的页面共享进行优化的可重放执行 | |
CN113821220A (zh) | 一种linux操作系统的安装方法和装置 | |
CN116483374A (zh) | 一种交叉编译方法 | |
CN101727347A (zh) | 一种完成软件构建的方法及系统 | |
CN114416031B (zh) | 面向AIoT场景支持RISC-V处理器的操作系统 | |
CN114816424A (zh) | 一种基于容器的持续集成方法、装置和电子设备 | |
US8713545B2 (en) | Architecture for accelerated computer processing | |
Hookway | DIGITAL FX! 32 running 32-Bit x86 applications on Alpha NT | |
CN110362320B (zh) | 一种应用开发平台的命令实现方法和装置 | |
CN110806876A (zh) | 基于Slitaz的轻量级Linux系统定制方法、装置计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |