2010-04-28 39 views
2

我有在QTCreator鏈接simpliest測試程序有問題使用的OpenCV:在QTCreator(連接問題)

CODE:

#include <QtCore/QCoreApplication> 
#include <cv.h> 

#include <highgui.h> 
#include <cxcore.hpp> 

using namespace cv; 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
    cv::Mat M(7,7,CV_32FC2,Scalar(1,3)); 
    return 0; 
} 

.pro文件:

QT  -= gui 
TARGET = testopencv 
CONFIG += console 
CONFIG -= app_bundle 
INCLUDEPATH += C:/OpenCV2_1/include/opencv 
TEMPLATE = app 

LIBS += C:/OpenCV2_1/lib/cxcore210d.lib \ 
    C:/OpenCV2_1/lib/cv210d.lib \ 
    C:/OpenCV2_1/lib/highgui210d.lib\ 
    C:/OpenCV2_1/lib/cvaux210d.lib 
SOURCES += main.cpp 

我已經試圖用-L和-l像LIBS += -LC:/OpenCV2_1/lib -lcxcored

而在.pro f ILE:

QMAKE_LIBDIR += C:/OpenCV2_1/lib/Debug 

LIBS += -lcxcore210d \ 
-lcv210d \ 
-lhighgui210d 

的錯誤是這樣的:

debug/main.o:C:\griskin\test\app\testopencv/../../../../OpenCV2_1/include/opencv/cxcore.hpp:97: undefined reference to cv::format(char const*, ...)'

誰能幫助我?謝謝!

在Visual Studio中它的工作原理,但我需要它在QTCreator ..

回答

0

Qt使用MinGW的編譯和連接。當您使用C接口時,它將愉快地鏈接OpenCV .lib。但由於ABI問題,它不會鏈接C++模塊。你將不得不將自己限制在C接口(即沒有0​​),或者讓OpenCV用MinGw編譯(或用VS編譯Qt)。另請參閱this thread

0

這是我的.pro文件看起來像

INCLUDEPATH += C:\\opencv\\release\\install\\include\ 

LIBS += -LC:\\opencv\\release\\install\\bin \ 
    -lopencv_core240 \ 
    -lopencv_highgui240 \ 
    -lopencv_imgproc240 \ 
    -lopencv_features2d240 \ 
    -lopencv_calib3d240 \ 

#include <opencv/cv.h> 

更換

#include <cv.h> 

以上.pro文件的工作非常適合我。我已經使用mingw編譯OpenCV並在Qt中使用mingw編譯器工具鏈。

0

看來,QtCreator無法找到lib文件。 嘗試按如下方式指定包含文件和庫。

INCLUDEPATH += C:/OpenCV2_1/build/include/ 

LIBS += C:/OpenCV2_1/build/gpu/x86/lib/cxcore210d.lib 

如果您使用的是預構建版本的opencv,則應參考build文件夾。

(如果你不熟悉opencv,我推薦預生成版本)