vxworks解决64位的除法或者发生 undefined reference to `__udivsi3’的错误的解决办法
例如在链接中有时候会发现上述错误,无论vxworks还是linux其实都是一样
E:/WindRiver6.8/vxworks-6./target/config/***/uboot_lib/arch/arm/cpu/armv7/iproc/ddr_init.c:241: undefined reference to `__udivsi3’;
你根据代码根本无法查到该函数甚至展开后也无法发现错误原因;
其实这里涉及到一个32位编译操作64位除法的问题,由于移植在连接器中没有包含一些库导致,至于64位的除法并不需要我们去研究;可以通过下面的办法解决;
1:找到你以前在vxworks运行过的编译,找到日志,找到以-ld***开头的内容,我这里是ARM架构,所以是ldarm
ldarm -Map boot.map -EL -e romInit -Ttext f0000000 \
-o bootrom romInit.o boot_drv.a DecLzma.o bootInit.o version.o \
bootapp.Z.o \