我用的arm-linux-gcc是4.3.2版
现象是在c文件里用除法运算 '/' 就报错 , 提示是 找不到 __aeabi_uidiv , 我的办法是在uboot里搜索这个字眼 , 用命令 find | xargs grep __aeabi_uidiv ,搜出现这个字眼的文件 , 然后会出现很多结果 , 但仔细看的话可以锁定_udivsi3.S 这个文件 .
把这个文件复制到自己的裸机程序目录里 , makefile也加上这个_udivsi3.o , 再编译 ,
还报了错 , 这次提示 找不到__aeabi_idiv , 就按刚才的思路再操作一次 , 可以发现 _divsi3.S 也应该要复制到自己的目录下 , 然后再编译 ,
出现找不到 div0 的错误 , 做法一样 . 可以找到div0.c , 复制完后 可以在里边做点修改 , 看div0.c的注释可以知道这个函数是为处理分母为0的情况设置的 . 那么 , 大家可以根据自己的喜好修改了 .
问题解决之后反思一下 , 本来看到这种错误 , 第一反应应该是写一个和编译器要找的函数同名的除法函数 , 而不是不知道怎么办到处百度 , 搜到的办法都是添加库文件 , 根本不灵好吧 , 完全加不了 , 根本就找不到的东西 .
更聪明的办法我想就是参考uboot啦 , 省时省力 .
阅读(3300) | 评论(0) | 转发(0) |