【发布时间】:2017-08-16 07:01:57
【问题描述】:
我们在 armeabi-v7a 上创建了带有 hugin 应用程序的静态库,并尝试使用 Cmakelist 将它与我们在 Android 中的共享库连接起来。我们可以毫无问题地看到库和他的头文件,但是当我尝试编译它时,它失败并出现以下错误:
构建命令失败。
执行进程时出错
....\cmake\3.6.3155560\bin\cmake.exe 带有参数 {--build ....\OpenCVExample-master\app.externalNativeBuild\cmake\debug\arm64 -v8a --target native-lib}
[1/2] 构建 CXX 对象 CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o
[2/2] 链接 CXX 共享库 ........\build\intermediates\cmake\debug\obj\arm64-v8a\libnative-lib.so 失败:cmd.exe /C "cd . && ....\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=aarch64-none-linux-android --gcc-工具链=../../ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64 --sysroot=../../ndk-bundle/platforms/android-21/arch-arm64 -fPIC -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind -tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -std=gnu++11 -O0 -fno -limit-debug-info -O0 -fno-limit-debug-info -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-警告 -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,lib native-lib.so -o ........\build\intermediates\cmake\debug\obj\arm64-v8a\libnative-lib.so CMakeFiles/native-lib.dir/src/main/cpp/native -lib.cpp.o ../../../../src/main/jniLibs/arm64-v8a/libhugin.a ../../../../src/main/jniLibs/arm64 -v8a/libopencv_java3.so -lm "....\ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_static.a" && cd ."
../../../../src/main/jniLibs/arm64-v8a/libhugin.a:添加符号时出错:文件格式错误
clang++.exe:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
ninja:构建停止:子命令失败。
我们知道我们的设备使用 arm64-v8a ABI,但是我们在将静态库编译到这个架构时遇到了严重的问题,所以我们使用 armeabi-v7a。根据下面的这篇文章,它应该是兼容的。
Is arm64-v8a compatible with armeabi-v7a?
您知道我们的静态库或项目有什么问题吗?非常感谢
【问题讨论】:
-
说支持 arm64-v8a 的设备可以运行 armeabi-v7a 代码并不意味着单个应用程序可以使用这两种类型的代码。
标签: android static-libraries abi