Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18357
  • 博文数量: 5
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-18 20:28
文章分类
文章存档

2011年(1)

2009年(4)

我的朋友
最近访客

分类: LINUX

2009-04-18 21:06:08

(原创)arm-linux-gcc交叉编译环境的建立
一。准备工作
   安装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
     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移植工作。
阅读(994) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~