android - android上的OpenCV链接错误
问题描述
我正在尝试OpenCV
在 Android 上工作。我已经遵循了几个教程,但到目前为止没有成功。一种方法是OpenCVManager
,但是当我尝试示例时,它们不起作用。
我现在尝试的方法是通过and使用NDK
和添加 OpenCV 。至今没有成功。一般来说,哪种是开始使用 OpenCV 和 Android 的最佳方法?CMake
Android.mk
我尝试只创建一个空矩阵cv::Mat tmp
,但总是出现链接错误。
../../../../src/main/jniLibs/jni/include/opencv2/core/mat.inl.hpp:704: error: undefined reference to 'cv::fastFree(void*)'
我试过添加不同的调用-lopencv_core
,诸如此类。我不确定的一件事实际上是如何链接。有包含libopencv_core.so
等等的静态库。但是,jni/libs/
仅包含libopencv_java3.so
. 我应该链接哪些库以及如何链接?
CMakeLists.txt
cmake_minimum_required(VERSION 3.4.1)
include_directories(src/main/jniLibs/jni/include)
add_library( lib_opencv SHARED IMPORTED )
set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/libs/${ANDROID_ABI}/libopencv_java3.so)
add_library( native-lib SHARED src/main/cpp/native-lib.cpp )
find_library( # Sets the name of the path variable.
log-lib
# Specifies the name of the NDK library that
# you want CMake to locate.
log )
target_link_libraries( # Specifies the target library.
native-lib
# Links the target library to the log library
# included in the NDK.
${log-lib} )
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCV_LIB_TYPE:=SHARED
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
include {/home/myname/Code/Libraries/Android/OpenCV-android-sdk/sdk/native/jni/OpenCV.mk}
LOCAL_SRC_FILES += $(LOCAL_PATH)/native-lib.cpp
LOCAL_C_INCLUDES += {/home/myname/Code/Libraries/Android/OpenCV-android-sdk/sdk/native/jni/include}
include $(PREBUILT_STATIC_LIBRARY)
LOCAL_LDLIBS += -llog -ldl
LOCAL_CFLAGS += -DOPENCV_OLDER_VISION
LOCAL_CPP_FEATURES += exceptions (Recommended)
LOCAL_CPPFLAGS += -fexceptions
LOCAL_MODULE := native-lib
include $(BUILD_SHARED_LIBRARY)
解决方案
我按照这个例子编译了 OpenCV。https://github.com/sjfricke/OpenCV-NDK
虽然FaceDetection
崩溃了,但这可能是因为相关xml
的文件没有正确加载。
推荐阅读
- javascript - 如何将“活动”类添加到 javascript 中单击的导航链接?
- java - Remove last digit in a string in Java only if it is just one digit present
- node.js - 我将如何更改 json 文件中字符串中的值?
- git - ssh-agent、git config、github 或任何其他原因出现问题
- python - 有什么方法可以在 Python 中将访问过的网站的 cookie 和缓存从 chrome 获取到 beautifulsoup?
- c# - 如何在列表中查找元素
名称相同且时间相同或至少相似的地方? - postgresql - CentOS 7 pgbouncer.pid 权限问题
- resilience4j - 将 Prometheus 指标与 CircuitBreakerConfigCustomizer 一起使用
- jmeter - 如何管理客户端证书的大型密钥库以使用 JMeter 加载测试 Mutual TLS
- python - 用python中的字符串替换列表中的多个字符串并获取替换字符串出现的计数