错误:在运行cmake时在Android NDK中对'cv :: HOGDescriptor :: compute'的未定义引用

时间:2018-09-06 10:01:09

标签: android-ndk

我在Android的本机代码中使用cv::HOGDescriptor。毫无例外,opencv的其他功能运行良好。问题是,当我构建项目时,它会出现以下错误:

    Error while executing process /home/nikhil/Android/Sdk/cmake/3.6.4111459/bin/cmake with arguments {--build /home/nikhil/AndroidStudioProjects/Pipe/app/.externalNativeBuild/cmake/debug/x86 --target native-lib}
[1/2] Building CXX object CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o
[2/2] Linking CXX shared library ../../../../build/intermediates/cmake/debug/obj/x86/libnative-lib.so
FAILED: : && /home/nikhil/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++  --target=i686-none-linux-android --gcc-toolchain=/home/nikhil/Android/Sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/linux-x86_64 --sysroot=/home/nikhil/Android/Sdk/ndk-bundle/sysroot -fPIC -isystem /home/nikhil/Android/Sdk/ndk-bundle/sysroot/usr/include/i686-linux-android -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11  -std=gnu++11 -O0 -fno-limit-debug-info  -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ --sysroot /home/nikhil/Android/Sdk/ndk-bundle/platforms/android-21/arch-x86 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -L/home/nikhil/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86 -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ../../../../build/intermediates/cmake/debug/obj/x86/libnative-lib.so CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o  ../../../../src/main/jniLibs/x86/libopencv_java3.so /home/nikhil/Android/Sdk/ndk-bundle/platforms/android-21/arch-x86/usr/lib/liblog.so ../../../../src/main/jniLibs/x86/libzbarjni.so ../../../../src/main/jniLibs/x86/libiconv.so -latomic -lm "/home/nikhil/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86/libc++_static.a" "/home/nikhil/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/x86/libc++abi.a" && :
/home/nikhil/AndroidStudioProjects/Pipe/app/src/main/cpp/native-lib.cpp:213: error: undefined reference to 'cv::HOGDescriptor::compute(cv::_InputArray const&, std::__ndk1::vector<float, std::__ndk1::allocator<float> >&, cv::Size_<int>, cv::Size_<int>, std::__ndk1::vector<cv::Point_<int>, std::__ndk1::allocator<cv::Point_<int> > > const&) const'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

    at com.android.build.gradle.tasks.ExternalNativeBuildTaskUtils.executeBuildProcessAndLogError(ExternalNativeBuildTaskUtils.java:245)
    at com.android.build.gradle.tasks.ExternalNativeBuildTask.executeProcessBatch(ExternalNativeBuildTask.java:307)
    at com.android.build.gradle.tasks.ExternalNativeBuildTask.build(ExternalNativeBuildTask.java:185)
    at sun.reflect.GeneratedMethodAccessor678.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
    ... 45 more

我已经在cmake中链接了opencv.so文件。

请帮助。

0 个答案:

没有答案