在QTCreator中使用OpenCV(链接问题)

问题描述 投票:0回答:3

我在 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 中工作..

opencv qt-creator
3个回答
0
投票

Qt 使用 MinGW 编译器和链接器。当您使用 C 接口时,它会很乐意链接 OpenCV

.lib
。然而,由于ABI问题,它不会链接C++模块。

您必须将自己限制为仅使用 C 接口(即没有

cv::Mat
),或者让 OpenCV 使用 MinGw 进行编译(或者在 VS 中编译 Qt)。另请参阅此线程


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

#include <opencv/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 的预构建版本,则应该参考构建文件夹。

(如果你对 opencv 不太熟悉,我推荐预构建版本)

© www.soinside.com 2019 - 2024. All rights reserved.