Error:error: linker command failed with exit code 1 (use -v to see invocation)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://xuexuan.blog.csdn.net/article/details/55101192

转载请标明出处:http://blog.csdn.net/xx326664162/article/details/55101192 原文出自:薛瑄的博客

你也可以查看我的其他同类文章,也会让你有一定的收货!

错误:

Error:error: linker command failed with exit code 1 (use -v to see invocation)

Gradle Console 编译信息:

E:/AndroidStudioProjects/FaceDetectToSvr131/app/src/main/jni/libFiFacial.a: error adding symbols: File in wrong format
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [E:/AndroidStudioProjects/FaceDetectToSvr131/app/build/intermediates/ndkBuild/debug/obj/local/mips64/libface_identify.so] Error 1

去这个路径查看文件,app/build/intermediates/ndkBuild/debug/obj/local/mips64/libface_identify.so

确实没有生成这个so文件

这里写图片描述

分析:

根据我的分析,看到项目本来Application.mk中APP_ABI如下,我分析是没有指定生成mip64架构的so文件:

# The ARMv7 is significanly faster due to the use of the hardware FPU
APP_ABI := armeabi armeabi-v7a
APP_PLATFORM := android-8
APP_CPPFLAGS += -fexceptions
APP_STL := stlport_shared
APP_OPTIM := debug

jni中的c++文件,不支持生成mip64架构的so文件

解决:

在build.gradle中ndk模块中添加下面的代码:abiFilters 'armeabi', 'armeabi-v7a'

添加后的代码长这样:

ndk {
      moduleName "facetemp"
      abiFilters 'armeabi', 'armeabi-v7a'
    }

关注我的公众号,轻松了解和学习更多技术
这里写图片描述

展开阅读全文

没有更多推荐了,返回首页