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 to
cv::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 to
cv::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
我正在开发实时 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 to
cv::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 to
cv::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