2012-01-15 55 views
0

我在QT的Android设备编程,需要使用OpenCV进行捕捉从相机。我已经使用Qt的创造者和链接的OpenCV和使用的相机,但Qt中为Android(necessitas)时生成程序,显示此错误:错误necessitas同时使用OpenCV的库

C:/OpenCV2.3.1/libs/armeabi-v7a/libopencv_highgui.a(cap_images.o): In function `CvCapture_Images::close()': 
    cap_images.cpp:(.text._ZN16CvCapture_Images5closeEv+0x1c): undefined reference to `cvReleaseImage' 
    C:/OpenCV2.3.1/libs/armeabi-v7a/libopencv_highgui.a(cap_images.o): In function `CvCapture_Images::grabFrame()': 
    cap_images.cpp:(.text._ZN16CvCapture_Images9grabFrameEv+0x1e): undefined reference to `cvReleaseImage' 
    C:/OpenCV2.3.1/libs/armeabi-v7a/libopencv_highgui.a(cap_ffmpeg.o): In function `CvCapture_FFMPEG_proxy::retrieveFrame(int)': 
    cap_ffmpeg.cpp:(.text._ZN22CvCapture_FFMPEG_proxy13retrieveFrameEi[CvCapture_FFMPEG_proxy::retrieveFrame(int)]+0x50): undefined reference to `cvInitImageHeader' 
    cap_ffmpeg.cpp:(.text._ZN22CvCapture_FFMPEG_proxy13retrieveFrameEi[CvCapture_FFMPEG_proxy::retrieveFrame(int)]+0x5a): undefined reference to `cvSetData' 
    C:/OpenCV2.3.1/libs/armeabi-v7a/libopencv_highgui.a(cap_ffmpeg.o): In function `CvVideoWriter_FFMPEG_proxy::writeFrame(_IplImage const*)': 
    cap_ffmpeg.cpp:(.text._ZN26CvVideoWriter_FFMPEG_proxy10writeFrameEPK9_IplImage[CvVideoWriter_FFMPEG_proxy::writeFrame(_IplImage const*)]+0x5e): undefined reference to `cv::Exception::Exception(int, std::string const&, std::string const&, std::string const&, int)' 
    cap_ffmpeg.cpp:(.text._ZN26CvVideoWriter_FFMPEG_proxy10writeFrameEPK9_IplImage[CvVideoWriter_FFMPEG_proxy::writeFrame(_IplImage const*)]+0x64): undefined reference to `cv::error(cv::Exception const&)' 
    cap_ffmpeg.cpp:(.text._ZN26CvVideoWriter_FFMPEG_proxy10writeFrameEPK9_IplImage[CvVideoWriter_FFMPEG_proxy::writeFrame(_IplImage const*)]+0x6a): undefined reference to `cv::Exception::~Exception()' 
    cap_ffmpeg.cpp:(.text._ZN26CvVideoWriter_FFMPEG_proxy10writeFrameEPK9_IplImage[CvVideoWriter_FFMPEG_proxy::writeFrame(_IplImage const*)]+0x11c): undefined reference to `cv::Exception::~Exception()' 
C:/OpenCV2.3.1/libs/armeabi-v7a/libopencv_highgui.a(grfmt_tiff.o): In function `cv::TiffEncoder::newEncoder() const': 
grfmt_tiff.cpp:(.text._ZNK2cv11TiffEncoder10newEncoderEv+0x16): undefined reference to `cv::fastMalloc(unsigned int)' 
C:/OpenCV2.3.1/libs/armeabi-v7a/libopencv_highgui.a(grfmt_tiff.o): In function `cv::TiffDecoder::newDecoder() const': 
grfmt_tiff.cpp:(.text._ZNK2cv11TiffDecoder10newDecoderEv+0x16): undefined reference to `cv::fastMalloc(unsigned int)' 
C:/OpenCV2.3.1/libs/armeabi-v7a/libopencv_highgui.a(grfmt_tiff.o): In function `cv::TiffDecoder::~TiffDecoder()': 
grfmt_tiff.cpp:(.text._ZN2cv11TiffDecoderD1Ev+0x48): undefined reference to `cv::fastFree(void*)' 
grfmt_tiff.cpp:(.text._ZN2cv11TiffDecoderD1Ev+0x6e): undefined reference to `cv::Mat::deallocate()' 
     . 
     . 
     . 

我首先下载最新版本的OpenCV和构建它,然后使用库。也

project.pro

添加此行:

INCLUDEPATH += "C:\OpenCV2.3.1\include\opencv" 
LIBS +="C:/OpenCV2.3.1/libs/armeabi-v7a/libopencv_androidcamera.a" \ 
"C:/OpenCV2.3.1/libs/armeabi-v7a/libopencv_calib3d.a" \ 
"C:/OpenCV2.3.1/libs/armeabi-v7a/libopencv_calib3d_pch_dephelp.a" \ . 
... 

可以necessitas支持OpenCV的?为什么显示这个错误?

对不起我的英语。

+0

的可能重复[如何OpenCV的集成到Qt Creator的Android项目(http://stackoverflow.com/questions/27562311/如何对整合-OpenCV的 - 到 - QT-创造者 - 机器人项目) – sashoalm 2014-12-19 08:47:41

回答

0

查找和添加libtiff.a,它可能会在OpenCV的第三方库目录。

1

原来的.a文件的为了重要。把它们按上述顺序(将路径更改为你的路)为我工作:

LIBS += \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_calib3d.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_flann.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_objdetect.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_contrib.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_video.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_ml.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_legacy.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_highgui.a \ 
    /media/Software/android/OpenCV-2.3.1/share/OpenCV/3rdparty/libs/armeabi-v7a/liblibjpeg.a \ 
    /media/Software/android/OpenCV-2.3.1/share/OpenCV/3rdparty/libs/armeabi-v7a/liblibpng.a \ 
    /media/Software/android/OpenCV-2.3.1/share/OpenCV/3rdparty/libs/armeabi-v7a/liblibtiff.a \ 
    /media/Software/android/OpenCV-2.3.1/share/OpenCV/3rdparty/libs/armeabi-v7a/liblibjasper.a \ 
    /media/Software/android/OpenCV-2.3.1/share/OpenCV/3rdparty/libs/armeabi-v7a/libzlib.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_ts.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_imgproc.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_core.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_androidcamera.a \ 
    /media/Software/android/OpenCV-2.3.1/libs/armeabi-v7a/libopencv_features2d.a 

INCLUDEPATH += /media/Software/android/OpenCV-2.3.1/include/opencv/ \ 
       /media/Software/android/OpenCV-2.3.1/include/