操作系统:Ubuntu12.04 AMD64位
交叉编译环境:arm-Linux gcc版本4.4.3
前言:
首先理解一下交叉编译的意思。我们要给嵌入式设备写应用程序,但是又不能在嵌入式设备上完成所有的代码开发工作,只能在一台工作PC上完成然后编译成二进制文件上传到嵌入式设备上。但是我们选用的编译工具链不能是工作PC上的,应该是嵌入式设备上的编译工具链,所以,我们要在PC上搭建适用于嵌入式设备的交叉编译工具链。例如,PC上的gcc版本可能是4.6但是arm-linux-gcc的版本却是4.4.3.
搭建过程:
一、下载适合自己开发板的交叉编译工具包 本文以arm-linux-4.4.3.tar.bz2为例
二、解压缩到/usr/local/arm目录下面
# tar xvf arm-linux-4.4.3.tar.bz2 -C /usr/local/arm
三、设置环境变量
# vi /etc/profile 末尾添加行export PATH=$PATH:/usr/local/arm/arm-linux-4.4.3/bin
四、导入环境变量
# source /etc/profile
五、测试
# arm-linux-gcc -v
出现以下画面说明是ok了。。。
但是很有可能没有这么顺利,楼主我就遇到了一个问题,在输入上面命令后,出现如下错误:
/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: 15: exec: /home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found
在网上查了一下,发现是因为Ubuntu使用的是64位系统,需要安装一些32位的库:
$ sudo apt-get install ia32-libs
又因为ia32-libs是一个正在被淘汰的库,所以可能有些它的依赖包是不会被自动下载的,你可以根据他的提示先安装一下ia32-libs的依赖包,最后就可以把它装上了。
然后再用# arm-linux-gcc -v 试试就好了!