Ошибка: не может учитывать суффикс ширины - `mov r2,#0x0'

Я пишу такой код:

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"
    );
}

Android.mk

LOCAL_PATH      := $(call my-dir)

ifneq ($(TARGET_ARCH_ABI),arm64-v8a)
    include $(CLEAR_VARS)
    LOCAL_C_INCLUDES += $(LOCAL_PATH)/../android \
                        $(LOCAL_PATH)/../inspector
    LOCAL_MODULE    := DexHunter
    LOCAL_SHARED_LIBRARIES := Inspector
    LOCAL_SRC_FILES := DexHunter.cpp
    LOCAL_LDLIBS    := -L$(LOCAL_PATH)/../so/$(TARGET_ARCH_ABI) -ldvm -llog
    include $(BUILD_SHARED_LIBRARY)
endif

когда я запускаю сборку gradlew.bat, получаю ошибку:

Android NDK: ПРЕДУПРЕЖДЕНИЕ:G:/tuoke_software/Inspector-master/app/src/main/jni/DexHunter/Android.mk:DexHunter: несистемные библиотеки в флагах компоновщика: -ldvm Android NDK: это может привести к неправильные сборки. Попробуйте вместо этого использовать LOCAL_STATIC_LIBRARIES Android NDK: или LOCAL_SHARED_LIBRARIES, чтобы перечислить библиотечные зависимости Android NDK: текущий модуль Android NDK: ПРЕДУПРЕЖДЕНИЕ: G: /tuoke_software/Inspector-master/app/src/main/jni/trace_anti/Aceroid: несистемная библиотека в параметрах компоновщика: -ldvm Android NDK: это может привести к неправильной сборке. Попробуйте вместо этого использовать LOCAL_STATIC_LIBRARIES Android NDK: или LOCAL_SHARED_LIBRARIES, чтобы перечислить библиотечные зависимости Android NDK: текущий модуль Android NDK: ПРЕДУПРЕЖДЕНИЕ: G: /tuoke_software/Inspector-master/app/src/main/jni/adbi/dk/Android:dalvikhook: LOCAL_LDLIBS всегда игнорируется для статических библиотек Android NDK: ПРЕДУПРЕЖДЕНИЕ: G: /tuoke_software/Inspector-master/app/src/main/jni/adbi/ddi/Android.mk:dalvikhook: несистемные библиотеки в флагах компоновщика: -ldvm Android NDK: это может привести к неправильной сборке. Попробуйте вместо этого использовать LOCAL_STATIC_LIBRARIES Android NDK: или LOCAL_SHARED_LIBRARIES, чтобы получить список библиотечных зависимостей Android NDK: текущий модуль Android NDK: ПРЕДУПРЕЖДЕНИЕ: G: /tuoke_software/Inspector-master/app/src/main/jni/dvmutil/Android: несистемные библиотеки в флагах компоновщика: -ldvm Android NDK: это может привести к неправильной сборке. Попробуйте вместо этого использовать LOCAL_STATIC_LIBRARIES Android NDK: или LOCAL_SHARED_LIBRARIES, чтобы получить список библиотечных зависимостей Android NDK: текущий модуль [armeabi] Скомпилировать большой палец: base <= hook.c G:/tuoke_software/Inspector-master/app/src/main/jni/adbi/base/hook.c:205:6: предупреждение: неявное объявление функции 'u nlockpt' недопустимо в C99 [-Wimplicit-function-объявление] if (unlockpt (coms)<0) {^ G: / tuoke_software / Инспектор-мастер /app/src/main/jni/adbi/base/hook.c:211:23: предупреждение: неявное объявление функции ' ptsname' недопустимо в C99 [-Wimplicit-function-объявление] strcpy (ptsn, (char) ptsname (* coms)); ^ 2 предупреждения сгенерированы. C:\Users\johnyang\AppData\Local\Temp\hook-abd8f4.s: Сообщения ассемблера: C:\Users\johnyang\AppData\Local\Temp\hook-abd8f4.s:80: Ошибка: невозможно определить суффикс ширины -- `mov r2,#0x0' clang.exe: ошибка: команда ассемблера завершилась неудачно с кодом выхода 1 (используйте -v для просмотра вызова) make: *** [G:/tuoke_software/Inspector-master/app/build/ middleates/ndkBuild/debug/obj/local/armeabi/objs-debug/base/h ook.o] Ошибка 1

  • Попробуйте: Запустите с параметром --stacktrace, чтобы получить трассировку стека. Запустите с параметром --debug, чтобы получить больше вывода журнала.

СТРОИТЬ НЕУДАЧИ

поэтому я изменяю свой Android.mk следующим образом:

LOCAL_PATH      := $(call my-dir)

ifneq ($(TARGET_ARCH_ABI),arm64-v8a)
    include $(CLEAR_VARS)
    LOCAL_C_INCLUDES += $(LOCAL_PATH)/../android \
                        $(LOCAL_PATH)/../inspector
    LOCAL_MODULE    := DexHunter
    LOCAL_SHARED_LIBRARIES := Inspector
    LOCAL_SRC_FILES := DexHunter.cpp
    LOCAL_LDLIBS    := -L$(LOCAL_PATH)/../so/$(TARGET_ARCH_ABI) -llog
    include $(BUILD_SHARED_LIBRARY)
endif

когда я перестраиваю, я получаю эту ошибку:

1 предупреждение сгенерировано. G:/tuoke_software/Inspector-master/app/src/main/jni/DexHunter/DexHunter.cpp:768: ошибка: неопределенная ссылка на 'dexStringCacheInit(DexStringCache*)' G:/tuoke_software/Inspector-master/app/src/main/jni/DexHunter/DexHunter.cpp:769: ошибка: неопределенная ссылка на 'dexProtoGetMethodDescriptor(DexProto const*, DexStringCache*)' G:/tuoke_software/Inspector-master/app/src/main/jni/DexHunter/D:405: ошибка: неопределенная ссылка на 'dvmThreadSelf()' G:/tuoke_software/Inspector-master/app/src/main/jni/DexHunter/DexHunter.cpp:405: ошибка: неопределенная ссылка на 'dvmDecodeIndirectRef(Thread*, _jobject) *)' G:/tuoke_software/Inspector-master/app/src/main/jni/DexHunter/DexHunter.cpp:467: ошибка: неопределенная ссылка на'dvmDefineClass(DvmDex*, char const*, Object*)' G:/tuoke_software/Inspector-master/app/src/main/jni/DexHunter/DexHunter.cpp:476: ошибка: неопределенная ссылка на 'dvmInitClass' G:/tuoke_software/Inspector-master/app/src/main/jni/DexHunter/../android/common.h:50: ошибка: неопределенная ссылка ence to 'dvmGetRelativeTimeNsec()' clang++.exe: error: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова) make: *** [G:/tuoke_software/Inspector-master/app/build/ промежуточный тип /ndkBuild/debug/obj/local/x86/libDexHunter.so] Ошибка 1

кто поможет мне решить проблему?

0 ответов

Другие вопросы по тегам