我目前面临的问题与此问题中提出的问题相同,只是我使用的是2.4版本而不是2.3.1版本.
我已将原生活动(从ndk样本)转换为c ++并修改了android.mk和application.mk.
我有同样的错误(~Mat等等).
当我读到问题的答案时,我意识到我需要添加OPENCV_INSTALL_MODULES:=on and OPENCV_LIB_TYPE:=STATIC(这很奇怪,因为我有一个原生openCV的其他项目,不需要两行).
但它仍然无法正常工作.
Android.mk如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCV_LIB_TYPE:=STATIC
OPENCV_INSTALL_MODULES:=on
include includeOpenCV.mk
ifeq ("$(wildcard $(OPENCV_MK_PATH))","")
#try to load OpenCV.mk from default install location
include $(TOOLCHAIN_PREBUILT_ROOT)/user/share/OpenCV/OpenCV.mk
else
include $(OPENCV_MK_PATH)
endif
LOCAL_MODULE := native-activity
LOCAL_SRC_FILES := main.cpp engine.cpp
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM
LOCAL_STATIC_LIBRARIES += android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
./obj/local/armeabi-v7a/libopencv_core.a(persistence.cpp.o): In function `icvPuts(CvFileStorage*, char const*)':
persistence.cpp:(.text._ZL7icvPutsP13CvFileStoragePKc+0x20): undefined reference to `gzputs'
./obj/local/armeabi-v7a/libopencv_core.a(persistence.cpp.o): In function `icvGets(CvFileStorage*, char*, int)': …Run Code Online (Sandbox Code Playgroud)