Использование OpenCV в QTCreator (проблема с линковкой) - PullRequest
2 голосов
/ 28 апреля 2010

У меня проблема со связыванием самой простой тестовой программы в QTCreator:

КОД:

#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 файле:

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 ..

Ответы [ 4 ]

3 голосов
/ 16 октября 2010

Использование OpenCV от QTCreator не может быть проще. У меня есть подробный простой способ сделать это здесь.

http://www.barbato.us/2010/09/20/using-opencv-within-qtcreator-in-windows/

Удачи и веселья с OpenCV

0 голосов
/ 14 августа 2013

Кажется, что QtCreator не может найти файлы lib. Попробуйте указать включаемый файл и библиотеки следующим образом.

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

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

вам следует обратиться к папке build, если вы используете предварительно собранную версию opencv.

(я рекомендую предварительную сборку, если вы не знакомы с opencv)

0 голосов
/ 20 декабря 2012

Вот как выглядит мой .pro файл

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

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

и заменить

#include <cv.h>

с

#include <opencv/cv.h>

Выше .pro файл работает идеально для меня. Я использовал mingw для компиляции OpenCV и цепочки инструментов компилятора mingw в Qt.

0 голосов
/ 27 декабря 2010

Qt использует MinGW компилятор и компоновщик. Он с радостью свяжет OpenCV .lib s при использовании интерфейса C. Однако из-за проблем ABI он не будет связывать модули C ++.

Вам придется либо ограничить себя только интерфейсами C (т.е. нет cv::Mat), либо заставить OpenCV скомпилировать с MinGw (или скомпилировать Qt в / с VS). Также смотрите эту тему .

...