0
我正在重新建立AndroidEagleEye庫來自MacOS上的源代碼。當我編譯使用ndk-build
命令,我遇到這個錯誤:android ndk-build:錯誤:未知的寄存器名稱'r0'in asm
jni/base/hook.c:42:5: error: unknown register name 'r0' in asm : "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"
);
}
我怎樣才能解決這個錯誤。
謝謝。我明白了。我修改了Application.mk並且它是工作的。一個更小的問題,我編譯和遇到錯誤時,沒有返回的方法。我必須通過返回0來修復所有這些方法。通過這個有沒有ndk-build的選項? (因爲我認爲原作者已經使用了一些選項來繞過這些錯誤)。謝謝 –
這個警告是非常致命的。如果你有一個缺少return語句的函數(它是未定義的行爲,你會得到各種奇怪的行爲),編譯器可以並且會毀了你的一天。如果你真的想禁用這個警告,它只是'LOCAL_CFLAGS + = -Wno-error = return-type',但這是一個非常糟糕的主意。 –