Android 编译OpenCV Demo遇到的问题

1. OpenCV下载与编译 Ref Using OpenCV with Eclipse (plugin CDT) <> Step 软件安装 sudo apt-get install build-essential sudo apt-get install cmake sudo apt-get install libgtk2.0-dev sudo apt-get install pkg-config sudo apt-get install python-dev python-numpy sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev [optional] libdc1394 2.x; libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev. 代码下载 git clone https://github.com/Itseez/opencv.git 编译 cd ~/opencv mkdir release cd release cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local .. make sudo make install 按照guide在Eclipse里编译后运行遇到的问题 <> ./DisplayImage: error while loading shared libraries: libopencv_core.so.2.4: cannot open shared object file: No such file or directory 解决办法 <> /usr/local/lib下可以找到libopencv_core.so.2.4 sudo vim /etc/ld.so.conf.d/opencv.conf /usr/local/opencv/

sudo ldconfig -v

2. NDK 如何使用OpenCV Android development with OpenCV <#native-c> Application.mk APP_STL := gnustl_static APP_CPPFLAGS := -frtti -fexceptions APP_ABI := armeabi-v7a Unresolved inclusion: OpenCV头文件 Project property -> C/C++General -> Paths and Symbols -> Include add path to OpenCV-2.4.3-android-sdk/sdk/native/jni Program ndk-build is not found in PATH project property C++Complier选择Android,默认 Unresolved inclusion: <jni.h> NDK Project->New->Folder->Advanced->Link to alternate location(Linked Folder) Browse the path(for example):C:\Android\android-ndk-r8b\platforms\android-8\arch-arm\usr\include <#12584650> Unresolved inclusion: <vector>Symbol ‘std’ could not be resolved ${NDKROOT}/platforms/android-9/arch-arm/usr/include ${ProjDirPath}/../../sdk/native/jni/include ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.4.3/libs/armeabi-v7a/include ${NDKROOT}/sources/cxx-stl/gnu-libstdc++/4.4.3/include crosses initialization of “XXX”jump to case label [-fpermissive] XXX是要在编译时就要确定XXX的定义,但是goto语句运行时才会实际被执行到 <> 好比运行时到goto的地方我直接跳过了这条下面的语句,然而这条语句偏偏是定义语句,实际在编译时已经被编译了(因为你用的编译器在编译时并不检查goto的跳转,照样为越过的语句生成目标代码,但很很巧目标代码是初始化语句,可能会在进入函数时就为函数内部的局部变量“自动”分配栈空间的的操作),但是作为一个编译器是不是应该在编译阶段检查到这种编译阶段对定义初始化语句的越过就是各持己见的事情了。 编译器会检查有没有把对象定义在(构造函数的调用)放到一个条件块中。比如switch。编译器会报错。 <> Symbol ‘cv’ could not be resolved Project property -> C/C++General -> Paths and Symbols -> Include add path to OpenCV-2.4.3-android-sdk/sdk/native/jni 笨方法 Android.mk LOCAL_C_INCLUDES += inc NDK Project->New->Folder->Advanced->Link to alternate location(Linked Folder) Browse the path(for example):~/android/OpenCV-2.4.3-android-sdk/sdk/native/jni Need refresh sometime or comment use namespace and cv::Mat undefined reference to ‘vtable for cv::FastFeatureDetector’ fastcorner Ref OpenCV undefined references <> Android development with OpenCV <#native-c> In some cases a linkage error (like "In function ‘cv::toUtf16(std::basic_string<…>… undefined reference to ‘mbstowcs’") happens when building an application JNI library depending on OpenCV. The following line in the Application.mk usually fixes it: CDT Build Console /home/yanxu/android/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: ./obj/local/armeabi-v7a/objs-debug/fastcvsample/FastCVSample.o: in function cv::Mat::~Mat():/home/yanxu/android/OpenCV-2.4.3-android-sdk/sdk/native/jni/include/opencv2/core/mat.hpp:278: error: undefined reference to ‘cv::fastFree(void*)’ 虽然include了sdk/native/jni/OpenCV.mk,但是后面又把变量重新赋值,,而不是用+= LOCAL_C_INCLUDES LOCAL_CFLAGS LOCAL_STATIC_LIBRARIES LOCAL_LDLIBS

版权声明:本文为博主原创文章,未经博主允许不得转载。

勇于接受自己的失败,告诉自己,这就是自己的现实,

Android 编译OpenCV Demo遇到的问题

相关文章:

你感兴趣的文章:

标签云: