作者:译林hy_774 | 来源:互联网 | 2023-05-17 14:22
我在linux下编译了一个小模块,没有报错,能运行编译结果但是我交叉编译时,报了下面的错误:invalidasm:invalidoperandforcodew,我看了源代
我在linux下编译了一个小模块,没有报错,能运行编译结果
但是我交叉编译时,报了下面的错误:
invalid 'asm': invalid operand for code 'w',
我看了源代码,源代码中并没有 'W',这个怎么解决,是什么问题,请高手赐教........
9 个解决方案
是的,我在网上搜到了两个解决办法,但是不会操作,也不知道能不能解决
a.在XXX文件中INCLUDEPATH不要含任何路径(好像很难做到哦);
b.重新实现这些函数,我是这种方法解决这个问题的。
发现调用ntohll函数出错,类似的函数还有ntohl、ntohs、htonl、htons等,
研究n久终于研究明白,原来这些函数只是一个宏定义,在arm环境下找到对应的实现所致
网上有人这么说.....
我详细点说吧:
大家如果有android的源码,在android/external/ppp/pppd/plugins/rp-pppoe会有一些源码
我就是编译这些源码,我稍微修改了一下,在linux下用Makefile编译生成了a.out,运行ok。
我想把这个功能添加到镜像中去,自己写了一个Android.mk,然后到android/下make,
就出现了这个报错:
invalid 'asm': invalid operand for code 'w'
还有很多很多的宏重定义警告
warning: "_POSIX_TIMERS" redefined
warning: "_POSIX_REALTIME_SIGNALS" redefined
等等,这些警告一屏一屏的刷......
各位看官,大虾,怎么办啊.....