背景:编译arm平台上的uboot,可以正常编译,反汇编查看运算符%对应的语句,为__aeabi_uidivmod,看前缀应该是编译链工具自带库中的函数?
之后,在makefile文件中,手动添加编译参数-DDEBUG,编译报错,在某个包含%的assert语句中,提示undefined reference __aeabi_ldivmod。因为打开了debug选项,所以该assert宏生效, 会进行编译。
为什么添加debug后,编译器翻译运算符会出现差异呢?
在哪个地方制定编译器对运算符的处理呢?
网上搜索类似错误,国外一个网站上说的解决办法,是把源码中某__aeabi_uldivmod符号改为__aeabi_ldivmod,然后加入到编译对象中。。。。
编译链版本:gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11-rc1)
谢啦,哪位兄指点下吧。
--
FROM 111.183.25.*