Chinaunix首页 | 论坛 | 博客
  • 博客访问: 466093
  • 博文数量: 100
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 955
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-21 09:30
文章分类

全部博文(100)

文章存档

2017年(1)

2016年(16)

2015年(83)

我的朋友

分类: 嵌入式

2015-05-28 17:58:15

解决编译TQ2416 uboot报错:undefined reference to `__aeabi_unwind_cpp_pr0'的问题,更换编译器无用,重做编译器也无法解决。最后发现当用一个long long类型(64位)的变量做除法运算时时就会报此错误, 网上有人说armv5te没有除法指令集导致,我认为不是,而是longlong是64位数据,编译器肯定是用8个字节来存储,但是2416是32位cpu,不可能执行64位除法,所以我们不要用/符号执行64位除法运算,需要借助除法函数库。因此使用lldiv函数做除法运算即可,或者不要用用64位数据做除法运算(但是有时必须用64位数据,否则计算溢出)。
网上搜出的答案都挺扯的,还说改makefile,arm-linux-gcc加上-nostdlib编译选项,说得头头是道,都是无稽之谈:-)。
阅读(3147) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~