jmpews / Dobby

a lightweight, multi-platform, multi-architecture hook framework.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Android Studio 导入libdobby.a静态库,编译时,链接阶段报错

ndl1302732 opened this issue · comments

在github上下载最新的android版本静态库,在Android Studio项目中使用。
使用的ndk版本:android-ndk-r25b

ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADD_ABS_LO12_NC cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADD_ABS_LO12_NC cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADD_ABS_LO12_NC cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_LDST64_ABS_LO12_NC cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_LDST64_ABS_LO12_NC cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADD_ABS_LO12_NC cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADD_ABS_LO12_NC cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(ProcessRuntimeUtility::GetProcessMemoryLayout()) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(_GLOBAL__sub_I_ProcessRuntimeUtility.cc) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a

ld: error: relocation R_AARCH64_ADD_ABS_LO12_NC cannot be used against symbol 'regions'; recompile with -fPIC

defined in D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a(ProcessRuntimeUtility.cc.o)
referenced by ProcessRuntimeUtility.cc
ProcessRuntimeUtility.cc.o:(_GLOBAL__sub_I_ProcessRuntimeUtility.cc) in archive D:/WorkSpace/XposedNative/app/src/main/cpp/jniLibs/arm64-v8a/libdobby.a
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

我也遇到了个问题,用的mk文件编译的,百度说加个LOCAL_CFLAGS := -fPIC就可以,但是我加了还是不行

已找到解决方法,Android.mk文件加上这一行就可以通过:LOCAL_LDFLAGS += -Wl,-Bsymbolic