android ndk-build:错误:asm中的未知寄存器名称'r0'

时间:2016-12-26 19:10:14

标签: android android-ndk

我在MacOS上从源代码中再次建立AndroidEagleEye库。当我使用ndk-build命令编译时,我遇到了这个错误:

  

jni / base / hook.c:42:5:错误:asm中未知的寄存器名称'r0'                   :“r0”,“r1”,“r7”

以下是带有该错误的代码:

void inline hook_cacheflush(unsigned int begin, unsigned int end)

    {   
        const int syscall = 0xf0002;
        __asm __volatile (
            "mov     r0, %0\n"          
            "mov     r1, %1\n"
            "mov     r7, %2\n"
            "mov     r2, #0x0\n"
            "svc     0x00000000\n"
            :
            :   "r" (begin), "r" (end), "r" (syscall)
            :   "r0", "r1", "r7"
            );
    }

如何修复此错误。

1 个答案:

答案 0 :(得分:1)

ndk-build为所有Android架构构建。您还需要为其他体系结构包含asm(并使用适当的预处理器宏保护它们),或者在Application.mk中设置APP_ABI := armeabi armeabi-v7a