首页 > 解决方案 > android studio 3中的内联汇编错误

问题描述

我正在使用 android studio 3 和 ndk 17.0.4754217。所以我想执行这个功能。

void* thread_one(void* arg){
   LOGD("Thread 1");
   __asm__ __volatile__("sub r0, r0, r1");
}

但是当我编译它时,它给了我这个错误。

error: unknown use of instruction mnemonic without a size suffix
__asm__ __volatile__("sub r0, r0, r1");
                     ^
<inline asm>:1:2: note: instantiated into assembly here
    sub r0, r0, r1
    ^
    1 error generated.
ninja: build stopped: subcommand failed.

我不知道如何解决它。我尝试了“潜艇”,但仍然失败。谁能给我一些关于如何解决这个问题的建议?

/* 我改变的东西 */

在 build.gradle(Module:app) 中,我添加了

arguments '-DANDROID_TOOLCHAIN=clang','-DANDROID_ARM_MODE=arm'

到 android.defaultConfig.externalNativeBuild.cmake 所以它将作为手臂模式而不是拇指工作。但是,这无济于事。

我添加了

abiFilters 'armeabi-v7a','x86'

到 android.defaultConfig.ndk。再次,它没有帮助。

我还尝试了拇指模式并将“sub”更改为“subw”,但这没有帮助。

标签: androidjava-native-interface

解决方案


推荐阅读