在尝试将最新的ffmpeg迁移到iOS平台时,我遇到了一些编译错误。这些错误来自GNU汇编程序(gas),它似乎无法处理最新的ffmpeg中的一些asm指令。
例如:
libavcodec/arm/dsputil_armv6.S:109:bad instruction 'ldr_post r4,r1,r2'但是,指令'ldr_post‘在以前版本的ffmpeg (更具体地说,版本0.7)中找不到。
我的问题是,'ldr_post‘和'ldr’有什么区别?我可以将'ldr_post‘改为几个更简单的指令的组合,以避免这些编译错误吗?
发布于 2012-01-30 19:28:01
来自asm.S
.macro ldr_post rt, rn, rm:vararg
A ldr \rt, [\rn], \rm
T ldr \rt, [\rn]
T add \rn, \rn, \rm
.endm'A‘标记ARM模式下发出的指令,'T’标记Thumb模式下发出的指令。因此,它基本上等同于ldr r4, [r1], r2,但同时适用于ARM和Thumb模式(Thumb-1不支持增量后版本,因此必须使用两条指令进行模拟)。
发布于 2012-01-30 16:12:45
ldr_post不是ARM有效指令
我假设这是一个宏。所以,试着找到宏定义。
https://stackoverflow.com/questions/9059152
复制相似问题