请教arm-arm linux gcc 安装-gcc交叉编译的一个 错误

本博文针对arm-linux-gcc4.3.2版本的交叉编译工具出现的常见错误,进行了整理,总结。
开发环境: ARM9 (JZ2440开发板)
开放平台: Ubuntu14.04
交叉编译工具: arm-linux-gcc4.3.2
解决 uboot1.1.6在arm-linux-gcc-4.3.2版本下编译错误问题
编译错误如下图:
解决方案:
1.修改Makefile文件中的PLATFORM_LIBS
将 PLATFORM_LIBS += -L $(shell dirname(CC)(CFLAGS) -print-libgcc-file-name) -lgcc
PLATFORM_LIBS += -L $(shell dirname(CC)(CFLAGS) -print-libgcc-file-name) -lgcc -lc -L /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib
2.修改 cpu /arm920t/config.mk 文件
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
PLATFORM_CPPFLAGS +=$(call cc-option,)
PLATFORM_RELFLAGS +=$(call cc-option,$(call cc-option,))
make 100ask24x0_config
就可以编译通过啦~!
二. 解决在编译linux时无法生成uImage文件
解决方法: 没有安装mkimage安装包
sudo apt-get install mkimage
三.移植Busybox时注意的问题
1.选择arm-linux-
交叉编译工具
2.启动内核时卡在 Freeing init memory: 140K
解决方法:
在编译linux时make menuconig 选择
内核加上EABI 和OABI的支持
Kernel Features
[*] Use the ARM EABI to compile the kernel
Allow old ABI binaries to run with this kernel (EXPERIMENTA
3.Illegal instruction 的解决方法
把/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib目录(也就是你的编译器的库目录)下
的所有文件拷贝到目标板子的根目录的lib目录下就好了。
这样无论你的hello是动态编译还是静态编译,跑起来都不会有Illegal instruction的问题。
4.执行qt的可执行文件时出现错误没有libstdc++库
解决方法: 在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/lib中复制文件 : libstdc++.so
libstdc++.so.6.0.10
libstdc++.so.6 到开发板的lib目录下面。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:422次
排名:千里之外Ubuntu 16.04 安装 arm-linux-gcc 嵌入式交叉编译环境 问题汇总
时间: 01:47:39
&&&& 阅读:2827
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  实习了将近半年一直在做硬件以及底层的驱动,最近要找工作了发现了对linux普遍要求很高,而且工作岗位也非常多,所以最近一些时间在时不时地接触linux。
正文:(我一时兴起开始写博客,准备不充分,图片都没有保存)
  首先就是上网查找一下现成的教程,下面的网址就是一个很好的教程
  /softhal/p/5699381.html
  第一、二、三步我都是照做的
  但是在第四步的时候对于我这种新手来说就出现了一些问题:  
  1、第一种方法,修改bashrc文件,总是会出现下面的这个提示
  ** (gedit:5488): WARNING **: Set document metadata failed: 不支持设置属性 metadata::gedit-position
  我已开始也很纳闷,一直以为出了什么错误,上网查了一下都说这个忽视,好吧那我也就忽视了,也没去深究。
  而且我改完文件之后
  我已开始也很纳闷,一直以为出了什么错误,上网查了一下都说这个忽视,好吧那我也就忽视了,也没去深究。
  2、而且我改完文件之后 使用 source /root/.bashrc 指令显示 权限不足&& 所以我就试了下一种方法。
  3、sudo gedit /etc/profile 这个指令打开的profile 文件在我的电脑上字体都是灰色的,没有关键字的字体颜色变化,我也就放弃了这个方法。
  直接第三种方法,简单暴力,改完之后,重启一下,在shell 中 输入 $echo PATH 查看一下环境配置是否成功。
  到这里我还以为万事大吉了,并且arm-linux-TAB 有正常的反应,可是输入 arm-linux-gcc -v 时,发现有什么东西没找到,所以我就去相关文件夹查了一下,发现4.4.3文件夹上锁了,所以我感觉就是这个锁的锅,所以我在网上找了一下去掉文件夹锁的指令:
  sudo chmod -R 777 文件或文件夹& (首先要到达4.4.3的目录下)
  然后在输入 arm-linux-gcc -v 就会出现版本号了,也就代表安装成功。
  之后我就赶紧建立一个hello.c文件想赶快试试交叉编译环境,可是发现又会出现如下错误:
  while loading shared libraries: libstdc++.so.6: cannot open shared object file
  解决方法:sudo apt-get install lib32stdc++6
  亲测可以使用。
  最终 输入 arm-linux-gcc -o Hello hello.c
  不报错,这就正式安装成功了。
  也就到这里了,杭州的冬天冻脚,想回东北!
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!}

我要回帖

更多关于 gcc arm 交叉编译 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信