2012-05-30 4 views
3

Я запускаю opencv и qt.I успешно добавил включения для opencv. Но когда я делаю 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

Я сделал это, но программа не будет работать при построении. Он выйдет из приложения «Приложение не сработало успешно». Я подозреваю, что это связано с 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 

Для окон (ваша проблема):

win32: LIBS += -L C:\OpenCV2.3\opencv\build\gpu\x64\lib\ -lopencv_core231 
Смежные вопросы