交叉编译

交叉编译

目录

1.    概念.... 2

2.    环境搭建.... 2

2.1交叉编译工具链获取.... 2

2.2配置交叉编译环境.... 2

3.    使用中遇到的问题.... 3

3.1如何将交叉编译后的程序,传送到另外一个平台上.... 3

3.2在使用其他库的过程中,遇到Incompatible问题.... 3

 


 

1.概念

在一个平台上生成另外一个平台上可执行的代码。

解释:平台,即体系结构+操作系统,比如ARM7、ARM9、X86是同的体系结构,linux、windows是不太的操作系统。在x86+windows平台下,想编译出ARM9+linux可运行的程序,这时候就需要交叉编译环境。

2.环境搭建

2.1     交叉编译工具链获取

1. 通过网络下载(百度/google),比如常见的arm+linux平台交叉编译工具:arm-linu-gcc。

2. 一般开源的系统,源码中都包含交叉编译工具,比如OpenWrt,只需在make menuconfig时选上compile tools,编译完成后即可在相应的位置找到交叉编译工具。

3. 自己构建交叉编译链-----有待研究。

2.2     配置交叉编译环境

本质:在编译的时候,让环境能够找到相应的编译器。无需添加编译器路径,即可方便使用。

1. 将交叉编译工具存放在自己喜欢的目录,如/home/wein/

2.  # vim /etc/bash.bashrc

 在最后加上(该目录下存有交叉编译工具,如arm-linu-gcc):
 export PATH=$PATH: /home/wein/arm/bin
#export PATH

启动环境变量设置:

#source /root/.bashrc

3. 检测是否成功:

#arm-none-linux-gnueabi-gcc –v

可以观察到gcc version即表明成功。

3.使用中遇到的问题

3.1     如何将交叉编译后的程序,传送到另外一个平台上

a. 通过串口

1. 在linux下,一般使用minicom。

2. 在windows下,一般使用Scrt。

b. 通过ftp

c. 通过SD卡

d. U盘

3.2     在使用其他库的过程中,遇到Incompatible问题

比如在使用Ubuntu交叉编译OpenWrt系统程序时,假设该程序需要使用的其他开源库,如lib-coap,库直接使用一般会出现Incompatible问题。

本质上和为什么要搭建交叉编译环境道理一样,lib-coap一般是用gcc编译生成库,不适用于其他平台,所以出现不兼容情况。只需将lib-coap中的Makefile的所有编译工具改成对应平台即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值