How can i use openCV on Qt windows [ solved ]

asked 2016-02-06 11:03:16 -0500

ClementD gravatar image

updated 2016-02-07 05:49:08 -0500

Hi ,

Here is my configuration

Qt 5.5.1 Visual studion 2013 OpenCV 3.0.0

My problem is that i can't use opencv on my PC and i don't know how to solve my problem

Here is my .pro file:

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Dev_OpenCV
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

INCLUDEPATH += E:\\Logiciels\\OpenCV\\opencv\\build\\include

LIBS += -LE:\\Logiciels\\OpenCV\opencv\\build\\x64\\vc12\\staticlib \
    -lopencv_calib3d300d \
    -lopencv_core300d \
    -lopencv_features2d300d \
    -lopencv_flann300d \
    -lopencv_hal300d \
    -lopencv_highgui300d \
    -lopencv_imgcodecs300d \
    -lopencv_imgproc300d \
    -lopencv_ml300d \
    -lopencv_objdetect300d \
    -lopencv_photo300d \
    -lopencv_shape300d \
    -lopencv_stitching300d \
    -lopencv_superres300d \
    -lopencv_ts300d \
    -lopencv_video300d \
    -lopencv_videoio300d \
    -lopencv_videostab300d

The probleme is when i try to use an OpenCV object, there are many errors and i don't know why . Here is i screenshot of the probleme. Can someone help me?

image description

Here the begining of the output in txt . (just the begining because there is too many errors )

opencv_core300d.lib(alloc.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(matrix.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(opencv_core_pch.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(stl.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(system.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(umatrix.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(copy.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(convert.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(matop.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(stat.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(kmeans.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(array.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(datastructs.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(cuda_gpu_mat.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(cuda_host_mem.obj) : error LNK2038: discordance détectée pour 'RuntimeLibrary' : la valeur 'MTd_StaticDebug' ne correspond pas à la valeur 'MDd_DynamicDebug' in main.obj
opencv_core300d.lib(cuda_stream.obj) : error LNK2038 ...
(more)
edit retag flag offensive close merge delete

Comments

can you please replace the unreadable screenshot with the resp. text output ?

berak gravatar imageberak ( 2016-02-06 11:19:36 -0500 )edit

Done . i put the begning becaus it could be too long

ClementD gravatar imageClementD ( 2016-02-06 11:40:06 -0500 )edit

Can't you read the number of the error? want me to traduct it?

ClementD gravatar imageClementD ( 2016-02-06 11:49:56 -0500 )edit

naw, sorry for the rant, it's ok.

the main problem seems to be about static c-runtime versus dynamic one , no ?

berak gravatar imageberak ( 2016-02-06 11:53:18 -0500 )edit
1

opencv_core300d.lib(system.obj) : error LNK2038: detected conflict for 'RuntimeLibrary' : the value 'MTd_StaticDebug' does not correspond to the value 'MDd_DynamicDebug' in main.obj*

Basically you have linked the static libs, but your compiled objects require the dynamic version of the library

LorenaGdL gravatar imageLorenaGdL ( 2016-02-06 11:55:29 -0500 )edit

So i have to build the lib?

ClementD gravatar imageClementD ( 2016-02-06 12:41:54 -0500 )edit

No, just link the lib folder, not the staticlib one

LorenaGdL gravatar imageLorenaGdL ( 2016-02-06 12:54:52 -0500 )edit

But in the lib folder there is only "opencv_ts300" and "opencv_world" . is these two lib allow me to use all opencv?

ClementD gravatar imageClementD ( 2016-02-06 12:57:23 -0500 )edit
1

You only need opencv_world. It contains all the other modules

LorenaGdL gravatar imageLorenaGdL ( 2016-02-06 13:00:32 -0500 )edit