一。准备工作
安装linux环境(我的是RED_HAT9 linux2.2的内核)
下载交叉编译文件包 cross-2.95.3.tar.bz2
二。建立目录
1.建立交叉编译环境目录
cd /usr/local
mkdir arm
三。安装交叉编译环境
1.复制安装包到目录下
cp /mnt/hgfs/shar/cross-2.95.3.tar.bz2 /usr/local/arm
(注:我这里是用windows下载的压缩包,然后用VM共享的,我的linux网卡还没配置所以还不能在
linux环境下下载,呵呵)
2.解包交叉编译文件
cd /usr/local/arm
tar jxvf cross-2.95.3.tar.bz2
(正常的话会在arm目录下看到2.95.3这个文件夹)
四。配置环境变量
1.修改bashrc文件
cd /etc/
vi bashrc
(在文件最后一行添加环境变量代码
export PATH=/usr/local/arm/2.95.3/bin:$PATH)
2.保存退出
命令模式下 wq
五。编写测试代码
1.建立源文件
vi hello.c
编写如下代码(也可以编写其他C代码):
#include<stdio.h>
int main()
{
printf("Hello,world!/n");
return 0;
}
2.保存退出
wq
六。测试编译环境
1.重启linux环境
reboot
2.测试
arm-linux-gcc -o hello hello.c
file hello
执行后出现如下信息表示通过:
hello: ELF......
七。通过编译uboot来测试编译器
一般正常来说上面1~6步都没问题的话说明该版本的编译器已经正确安装了,但是我们的目的是编译
Uboot而且是1.1.6版的Uboot,编译器与该版本的Uboot是否兼容还不好说,所以要尝试下编译Ub
oot。
1.进入目录
cd /mnt/uboot1.1.6 (我的是在这个目录下)
2.编译Uboot
make distclean
make B2_config
make
正常来说这三步执行完了应该就生成了U-boot.bin 及其他一些以U-boot命名的文件,则说明编译成
功。但是我这里出现了错误提示具体如下:
.
.
.
arm-linux-gcc:unrecognized option 'MQ'
make[1]:***[.depend]Error 1
make[1]:Leaving directory '/mnt/u-boot/u-boot-1.1.6/examples'
make[1]:Leaving directory '/mnt/u-boot/u-boot-1.1.6/post'
.
.
.
arm-linux-gcc:unrecognized option 'MQ'
make[1]:***[.depend]Error 1
make[1]:Leaving directory '/mnt/u-boot/u-boot-1.1.6/post'
make[1]:Leaving directory '/mnt/u-boot/u-boot-1.1.6/post/cpu'
.
.
.
arm-linux-gcc:unrecognized option 'MQ'
make[1]:***[.depend]Error 1
make[1]:Leaving directory '/mnt/u-boot/u-boot-1.1.6/post/cpu'
make[1]:***[depend]Error 2
我上网上找了相关的资料没有解答办法,后来在csdn上发帖子有人说是交叉编译环境版本太第
不支持'MQ'命令项,建议换搞版本CROSS或者是找到该文件将其删掉,我感觉找文件太麻烦,所以
我直接上网上下了个arm-linux-gcc-3.3.2.tar.bz2 3.3.2版的我不知道这个是不是最高的,
先试试吧,当然还是重复上面的步骤,然后环境变量那里是export
PATH=/usr/local/arm/3.3.2/bin:$PATH ,重启
make distclean
make B2_config
make
问题又出现了,不过没有出现原来的问题,这回我知道了,看来真是版本问题。
细看出错原因,是说找不到GCC。
先用which gcc 试试看看有没有
结果真没有
这个简单,默认linux里是不安装GCC的,安装办法类似Windows
下面的“添加删除组件”,添加上GCC编译,大约等待2,3分钟后,我细心查找,终于找到了
uboot.bin我喜出望外,呵呵,到此编译环境的搭建宣告胜利结束!!!!
下面准备进行uboot移植工作。