带有Android NDK的OpenCV未定义引用 [英] OpenCV with Android NDK Undefined References

查看:223
本文介绍了带有Android NDK的OpenCV未定义引用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在android(仅限ndk)上使用opencv.我为armeabi编译了git仓库的最新资源. (基于: Building_OpenCV4Android_from_trunk )

I'm trying to use opencv on android (ndk only). I compiled the latest source of the git repository for armeabi. (Based on: Building_OpenCV4Android_from_trunk)

但是我遇到了这个错误(使用ndk-build):

But I'm getting this errors (with ndk-build):

error: undefined reference to 'cv::Mat::deallocate()'
error: undefined reference to 'cv::fastFree(void*)'
error: undefined reference to 'cv::_OutputArray::_OutputArray(cv::Mat&)'
error: undefined reference to 'cv::Mat::copyTo(cv::_OutputArray const&)'
error: undefined reference to 'cv::Mat::inv(int) const'

简单的测试代码:

cv::Mat testMat = cv::Mat(cv::Matx44d
(
    1.0, 0.0, 0.0, 0.0,
    0.0, 1.0, 0.0, 0.0,
    0.0, 0.0, 1.0, 0.0,
    0.0, 0.0, 0.0, 1.0
));
cv::Mat testMatInv = testMat.inv();

我的Android.mk:

My Android.mk:

LOCAL_C_INCLUDES :=  $(LOCAL_PATH)/../../../../libs/opencv/include
LOCAL_LDLIBS += -L../../../../libs/opencv/lib/android/armeabi
LOCAL_LDLIBS += -llog -lGLESv2 –lz
LOCAL_STATIC_LIBRARIES := libzip libpng libjpeg freetype
LOCAL_STATIC_LIBRARIES += libopencv_calib3d libopencv_contrib libopencv_core libopencv_features2d libopencv_flann libopencv_highgui libopencv_imgproc libopencv_legacy libopencv_ml libopencv_nonfree libopencv_objdetect libopencv_photo libopencv_stitching libopencv_ts libopencv_video libopencv_videostab

有人知道吗?谢谢

推荐答案

我现在可以正常使用了. 我忘了像这样在Android.mk中添加预构建库:

I got it working now. I forgot to add the prebuild libraries in the Android.mk like this:

#same for all other openCV Libs
LOCAL_MODULE := libopencv_calib3d
LOCAL_SRC_FILES := ../../opencv/lib/android/$(TARGET_ARCH_ABI)/libopencv_calib3d.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)

.....
LOCAL_STATIC_LIBRARIES += libopencv_contrib libopencv_legacy libopencv_ml libopencv_stitching libopencv_nonfree libopencv_objdetect libopencv_videostab libopencv_calib3d libopencv_photo libopencv_video libopencv_features2d libopencv_highgui libopencv_androidcamera libopencv_flann libopencv_imgproc libopencv_ts libopencv_core

这篇关于带有Android NDK的OpenCV未定义引用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆