android ndk CDT 使用 OpenCV、OpenCL、OpenGL 的构建错误

android ndk CDT build error for using OpenCV, OpenCL, OpenGL

我正在开发实时 FaceDetection 应用程序。

最初,此应用程序使用 OpenGL 来 read/write 图像和 OpenCL 与 JNI 并行处理。并且这个应用程序正常运行。

目前,我想导入 OpenCV 以使用几个 OpenCV 函数和 Mat 数据类型。所以,在我的项目中设置 OpenCV 库。

但是,这个项目无法构建.so文件。


./obj/local/armeabi-v7a/objs/JNIGLCL/JNIpr.o: 在函数 cv::Mat::release()': C:/Users/CVLAB/Desktop/adt-bundle-windows-x86_64-20140702/OpenCV-2.4.9-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp:367: undefined reference tocv::Mat::deallocate()' ./obj/local/armeabi-v7a/objs/JNIGLCL/JNIpr.o: 在函数 ~Mat': C:/Users/CVLAB/Desktop/adt-bundle-windows-x86_64-20140702/OpenCV-2.4.9-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp:278: undefined reference tocv::fastFree(void*)' collect2: ld 返回 1 退出状态 make: *** [obj/local/armeabi-v7a/libJNIGLCL.so] 错误 1

**** 构建完成 ****


OpenCV.mk 文件

LOCAL_PATH:= $(call my-dir)

OPENCV_INSTALL_MODULES:=on
OPENCV_LIB_TYPE:=STATIC

include C:/Users/CVLAB/Desktop/adt-bundle-windows-x86_64-20140702/OpenCV-2.4.9-android-sdk/sdk/native/jni/OpenCV.mk

LOCAL_MODULE     := JNIGLCL
LOCAL_CXXFLAGS   += -fno-exceptions
LOCAL_C_INCLUDES += $(LOCAL_PATH)
LOCAL_LDLIBS     := -lGLESv2 -lEGL -ldl -llog -landroid -lOpenCL
LOCAL_SRC_FILES  := JNIpr.cpp

include $(BUILD_SHARED_LIBRARY)

我包括 OpenCV 库。

属性 - Android - 图书馆

我设置 属性 - C/C++ 通用 - 路径和符号 - GNU C++ 添加此绝对路径: C:/Users/CVLAB/Desktop/adt-bundle-windows-x86_64-20140702/OpenCV-2.4.9-android-sdk/sdk/native/jni/include

但是,控制台打印上面的错误...

试试看

LOCAL_LDLIBS += -lGLESv2 -lEGL -ldl -llog -landroid -lOpenCL