今天编译一个执行文件时发生了如下错误
/home/archermind/test/jni/include/opencv2/core/mat.inl.hpp:804: undefined reference to `cv::Mat::deallocate()'
/home/archermind/test/obj/local/arm64-v8a/objs/t/test.o: In function `~Mat':
/home/archermind/test/jni/include/opencv2/core/mat.inl.hpp:692: undefined reference to `cv::fastFree(void*)'
/home/archermind/test/obj/local/arm64-v8a/objs/t/test.o: In function `~String':
/home/archermind/test/jni/include/opencv2/core/cvstd.hpp:647: undefined reference to `cv::String::deallocate()'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/home/archermind/test/obj/local/arm64-v8a/t] Error 1
archermind@flm:~/test/jni$ ls
Android.mk Application.mk include libopencv_java3.so test.cpp
这个时候就得检查一下include和libopencv_java*.so有没有问题
我这里用的是arm64-v8a,所以我就拷贝了一个这个目录下的libopencv_java3.so到当前路径,然后将当前的include文件夹删掉,重新从
包含这个libopencv_java3.so

在编译OpenCV相关代码时遇到链接错误,包括`undefined reference to cv::Mat::deallocate()`和`cv::String::deallocate()`。通过检查`include`目录和`libopencv_java3.so`,将正确版本的库和头文件引入,并更新`Android.mk`文件,最终成功解决编译问题。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



