Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

安卓如何编译生成arm64-v8a的so文件,试了很多次都报错 #277

Closed
h3clikejava opened this issue Feb 27, 2018 · 3 comments
Closed

Comments

@h3clikejava
Copy link

用的libncnn.a文件是直接从github上下的ncnn-android-lib/arm64-v8a/libncnn.a
然后和armeabi-v7a一样的方法,进入到工程的jni文件夹下ndk-build。

然后报错:
h3c-macbook:jni H3c$ ndk-build
[armeabi-v7a] SharedLibrary : libsqueezencnn.so
/Users/H3c/Documents/sdk/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: /Users/H3c/Downloads/ncnn-android-lib-4/arm64-v8a/libncnn.a(mat.cpp.o): incompatible target
/Users/H3c/Documents/sdk/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: /Users/H3c/Downloads/ncnn-android-lib-4/arm64-v8a/libncnn.a(mat_pixel.cpp.o): incompatible target
/Users/H3c/Documents/sdk/android-ndk-r16b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: /Users/H3c/Downloads/ncnn-android-lib-4/arm64-v8a/libncnn.a(net.cpp.o): incompatible target
/Users/H3c/Downloads/squeezencnn-AX/app/src/main/jni/squeezencnn_jni.cpp:81: error: undefined reference to 'ncnn::Net::load_param(unsigned char const*)'
/Users/H3c/Downloads/squeezencnn-AX/app/src/main/jni/squeezencnn_jni.cpp:90: error: undefined reference to 'ncnn::Net::load_model(unsigned char const*)'
/Users/H3c/Downloads/squeezencnn-AX/app/src/main/jni/squeezencnn_jni.cpp:126: error: undefined reference to 'ncnn::Mat::from_pixels(unsigned char const*, int, int, int)'
/Users/H3c/Downloads/squeezencnn-AX/app/src/main/jni/squeezencnn_jni.cpp:142: error: undefined reference to 'ncnn::Mat::substract_mean_normalize(float const*, float const*)'
/Users/H3c/Downloads/squeezencnn-AX/app/src/main/jni/squeezencnn_jni.cpp:144: error: undefined reference to 'ncnn::Net::create_extractor() const'
/Users/H3c/Downloads/squeezencnn-AX/app/src/main/jni/squeezencnn_jni.cpp:146: error: undefined reference to 'ncnn::Extractor::set_num_threads(int)'
/Users/H3c/Downloads/squeezencnn-AX/app/src/main/jni/squeezencnn_jni.cpp:150: error: undefined reference to 'ncnn::Extractor::input(int, ncnn::Mat const&)'
/Users/H3c/Downloads/squeezencnn-AX/app/src/main/jni/squeezencnn_jni.cpp:151: error: undefined reference to 'ncnn::Extractor::extract(int, ncnn::Mat&)'
/Users/H3c/Downloads/squeezencnn-AX/app/src/main/jni/squeezencnn_jni.cpp:51: error: undefined reference to 'ncnn::Net::Net()'
/Users/H3c/Downloads/squeezencnn-AX/app/src/main/jni/squeezencnn_jni.cpp:51: error: undefined reference to 'ncnn::Net::~Net()'
collect2: error: ld returned 1 exit status
make: *** [/Users/H3c/Downloads/squeezencnn-AX/app/src/main/obj/local/armeabi-v7a/libsqueezencnn.so] Error 1
h3c-macbook:jni H3c$

我编译armeabi-v7a是正常的,没问题,NDK用的是android-ndk-r16b,不知道哪里出了问题。

@mrbrantofgithub
Copy link

你解决这个问题了么?我也遇到相同的错误

@mrbrantofgithub
Copy link

很奇怪的是application.mk中我设置了app_abi为arm64-v8a,这里报错的时候还是显示为armeabi-v7a

@mrbrantofgithub
Copy link

我找到我的原因了,在build.gradle中,我之前写了abiFilters 'armeabi-v7a','arm64-v8a' 然后我把'armeabi-v7a'去掉就能正确编译运行了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants