大家好,我刚学习opencv,正在看《OpenCV.2.Computer.Vision.Application.Programming.Cookbook》,里面的例子都是使用opencv的
C++函数和类,在VS2010下面运行起来一切正常。但是在QT下面却一直出现
错误。错误如下:
F:\qtapp\hello-opencv-cpp1\main.cpp:-1: 错误:undefined reference to `cv::imread(std::string const&, int)'
F:\qtapp\hello-opencv-cpp1\main.cpp:-1: 错误:undefined reference to `cv::fastFree(void*)'
F:\qtapp\hello-opencv-cpp1\main.cpp:-1: 错误:undefined reference to `cv::fastFree(void*)'
F:\qtapp\hello-opencv-cpp1\main.cpp:-1: 错误:undefined reference to `cv::Mat::deallocate()'
F:\qtapp\hello-opencv-cpp1\main.cpp:-1: 错误:undefined reference to `cv::Mat::deallocate()'
F:\qtapp\hello-opencv-cpp1\main.cpp:-1: 错误:undefined reference to `cv::Mat::deallocate()'
F:\qtapp\hello-opencv-cpp1\main.cpp:-1: 错误:undefined reference to `cv::fastFree(void*)'
:-1: 错误:collect2: ld returned 1 exit status
我的代码如下:
- QT += core
- QT -= gui
- TARGET = hello-opencv-cpp1
- CONFIG += console
- CONFIG -= app_bundle
- TEMPLATE = app
- INCLUDEPATH += C:\OpenCV2.2\include
- CONFIG(release,debug|release){
- LIBS += C:\OpenCV2.2\lib\opencv_calib3d220.lib \
- C:\OpenCV2.2\lib\opencv_contrib220.lib \
- C:\OpenCV2.2\lib\opencv_core220.lib \
- C:\OpenCV2.2\lib\opencv_features2d220.lib \
- C:\OpenCV2.2\lib\opencv_ffmpeg220.lib \
- C:\OpenCV2.2\lib\opencv_flann220.lib \
- C:\OpenCV2.2\lib\opencv_gpu220.lib \
- C:\OpenCV2.2\lib\opencv_highgui220.lib \
- C:\OpenCV2.2\lib\opencv_imgproc220.lib \
- C:\OpenCV2.2\lib\opencv_legacy220.lib \
- C:\OpenCV2.2\lib\opencv_ml220.lib \
- C:\OpenCV2.2\lib\opencv_objdetect220.lib \
- C:\OpenCV2.2\lib\opencv_ts220.lib \
- C:\OpenCV2.2\lib\opencv_video220.lib \
- }
- CONFIG(debug,debug|release){
- LIBS += C:\OpenCV2.2\lib\opencv_calib3d220d.lib \
- C:\OpenCV2.2\lib\opencv_contrib220d.lib \
- C:\OpenCV2.2\lib\opencv_core220d.lib \
- C:\OpenCV2.2\lib\opencv_features2d220d.lib \
- C:\OpenCV2.2\lib\opencv_ffmpeg220d.lib \
- C:\OpenCV2.2\lib\opencv_flann220d.lib \
- C:\OpenCV2.2\lib\opencv_gpu220d.lib \
- C:\OpenCV2.2\lib\opencv_highgui220d.lib \
- C:\OpenCV2.2\lib\opencv_imgproc220d.lib \
- C:\OpenCV2.2\lib\opencv_legacy220d.lib \
- C:\OpenCV2.2\lib\opencv_ml220d.lib \
- C:\OpenCV2.2\lib\opencv_objdetect220d.lib \
- C:\OpenCV2.2\lib\opencv_ts220.lib \
- C:\OpenCV2.2\lib\opencv_video220d.lib \
- }
- SOURCES += \
- main.cpp
- #include <QtCore/QCoreApplication>
- #include<opencv/cv.h>
- #include<opencv/cxcore.h>
- #include<opencv/highgui.h>
- int main(int argc, char *argv[])
- {
- QCoreApplication a(argc, argv);
- cv::Mat img;
- //IplImage img;
- cv::imread("d:/dahai.jpg");
- std::cout<<"hello.jpg";
- return a.exec();
- }
网上说用mingw重新
编译一次opencv就能解决,但是我试过以后(我已经把库
文件换成.a的那个文件了),还是存在下面两个
问题:
F:\qtapp\hello-opencv-cpp1\main.cpp:-1: 错误:undefined reference to `cv::imread(std::string const&, int)'
:-1: 错误:collect2: ld returned 1 exit status
希望各位网友能够提供下解决这个问题的方向,谢谢;