安装交叉编译环境
====================================
gcc是linux环境下的asm和c语言编译器,生成的是可以在x86平台上运行的可执行程序;
而在开发板上运行的程序则需要arm平台专用的编译器,也称为交叉编译器;
交叉编译器可以由开发人员手工定制,也可用使用别人已经编译好的,比如arm-linux-gcc;
(1)安装交叉编译器
----------------------
$>cd /home/zhang/tools/
$>tar xzvf crosstools-451.tar.gz -C /usr/local/
$>cd /usr/local
$>ls
可以看到一个子目录toolschain/,该目录下存放了用于arm平台的交叉编译器和其他工具。arm-linux-gcc等可执行程序位于bin子目录下。
(2)环境变量的设置
----------------------
如果希望在控制台中直接运行arm-linux-gcc,则必须把arm-linux-gcc所在的路径记录到控制台的默认环境变量PATH中,这需要修改某些配置文件。
如果使用root用户,则可以修改如下文件:
$>vim ~/.bashrc
在文件的最后加入以下内容:
export PATH=/usr/local/toolschain/4.5.1/bin:$PATH
//写入/etc/profile或/etc/bashrc也可
退出vim后,使新的环境变量生效:
$>source ~/.bashrc
可以用如下命令验证是否可直接运行交叉编译器:
$>which arm-linux-gcc
如显示/usr/local/toolschain/4.5.1/bin/arm-linux-gcc则说明环境变量配置好;
如果没有,则检查一下~/.bashrc,并再次运行$>source ~/.bashrc
例子:用交叉编译器编译hello.c
$>vim hello.c
$>gcc hello.c -o x86-hello
$>arm-linux-gcc hello.c -o arm-hello (生成可执行程序)
$>file arm-hello
可以看到,这个应用程序需要在arm平台上运行
如果执行arm-linux-gcc有问题,可能是缺libz库,安装:
$>yum install zlib*.i686
如果你看完这篇博文,觉得对你有帮助,并且愿意付赞助费,那么我会更有动力写下去。