交叉编译
目录
3.1如何将交叉编译后的程序,传送到另外一个平台上.... 3
3.2在使用其他库的过程中,遇到Incompatible问题.... 3
在一个平台上生成另外一个平台上可执行的代码。
解释:平台,即体系结构+操作系统,比如ARM7、ARM9、X86是同的体系结构,linux、windows是不太的操作系统。在x86+windows平台下,想编译出ARM9+linux可运行的程序,这时候就需要交叉编译环境。
1. 通过网络下载(百度/google),比如常见的arm+linux平台交叉编译工具:arm-linu-gcc。
2. 一般开源的系统,源码中都包含交叉编译工具,比如OpenWrt,只需在make menuconfig时选上compile tools,编译完成后即可在相应的位置找到交叉编译工具。
3. 自己构建交叉编译链-----有待研究。
本质:在编译的时候,让环境能够找到相应的编译器。无需添加编译器路径,即可方便使用。
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即表明成功。
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的所有编译工具改成对应平台即可。