2012-05-30 64 views
3

我运行的OpenCV和qt.I已经成功添加了包括针对opencv.But当我做cvLoadImage,存在连接错误。Opencv2.3和Qt Creator 2.4.1链接错误

这是我的代码:

void MainWindow:on_pushButton_clicked() 
{ 

img = cvLoadImage("C:\\Users\\MLS-PROGRAMER\\Documents\\Visual Studio 2010\\Projects\\Image_processing\\Image_processing \\thres.png"); 
// cvNamedWindow("Image",CV_WINDOW_AUTOSIZE); 
// cvShowImage("Image", img); 
// cvWaitKey(40); 

} 

这是错误消息:

mainwindow.obj:-1: error: LNK2019: unresolved external symbol _cvLoadImage referenced in function "private: void __thiscall MainWindow:n_pushButton_clicked(void)" ([email protected]@@AAEXXZ) 

debug\FIDAS.exe:-1: error: LNK1120: 1 unresolved externals 

我的项目文件是这样的

#------------------------------------------------- 
# 
# Project created by QtCreator 2012-05-29T10:31:40 
# 
#------------------------------------------------- 

QT += core gui 

TARGET = FIDAS 
TEMPLATE = app 


SOURCES += main.cpp\ 
mainwindow.cpp 

HEADERS += mainwindow.h 

FORMS += mainwindow.ui 


INCLUDEPATH += C:\OpenCV2.3\opencv\build\include\opencv2\core \ 
C:\OpenCV2.3\opencv\build\include\opencv \ 
C:\OpenCV2.3\opencv\build\include\opencv2\imgproc \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib \ 

CONFIG(release,debug|release) 
{ 
LIBS += C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_calib3d231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_contrib231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_core231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_features2d231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_flann231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_gpu231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_haartraining_engine.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_highgui231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_imgproc231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_legacy231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_ml231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_objdetect231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_ts231.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_video231.lib \ 
} 

CONFIG(debug,debug|release) 
{ 
LIBS += C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_calib3d231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_contrib231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_core231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_features2d231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_flann231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_gpu231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_haartraining_engined.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_highgui231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_imgproc231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_legacy231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_ml231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_objdetect231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_ts231d.lib \ 
C:\OpenCV2.3\opencv\build\gpu\x64\lib\opencv_video231d.lib \ 
} 

任何帮助,这个问题将是巨大的。?

+0

加入opencv_highguid231.lib,然后再尝试... – ScarCode

+0

是那里的那些空间吗? – Bart

+0

@Bart ..now我编辑... – ShivShambo

回答

2

我使用的配置是这样为自己的项目:

LIBS += D:/OpenCV-2.3.0/build/lib/libopencv_core230.dll.a 

我用的,而不是使用C API C++ API,即imread而不是cvLoadImage

+0

整合的Qt我这样做,但建在程序将无法运行。它将退出“应用程序未成功运行”。我怀疑与64位库有关。这太混乱了。 – KJW

+0

来看,它qtcreator之外,看看有什么DLL的需要,然后添加DLL目录路径PATH – hamed

+0

仍然没有....我添加了缺少DLL的,但不会运行 – KJW

2

你实际上应该指定链接路径(在哪里找到库),然后将链接库列表:

LIBS += -L C:\OpenCV2.3\opencv\build\gpu\x64\lib -lopencv_contrib231 -lopencv_core231 -lopencv_features2d231 ... 
1

Step 8描述它为所有的架构。

基本上,你必须指定使用-L库路径,然后用

-l<libname_without_extension>

添加库文件对于UNIX(安装在默认位置):

unix: LIBS += -lopencv_core 
unix: LIBS += -lopencv_highgui 

对于windows (你的问题):

win32: LIBS += -L C:\OpenCV2.3\opencv\build\gpu\x64\lib\ -lopencv_core231