我在QTCreator中链接最简单的测试程序有问题:
CODE:
#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中工作..
答案 0 :(得分:3)
使用QTCreator中的OpenCV并不容易。我有一个详细的简单方法在这里做。
http://www.barbato.us/2010/09/20/using-opencv-within-qtcreator-in-windows/
祝你好运并享受OpenCV的乐趣
答案 1 :(得分:0)
Qt使用MinGW编译器和链接器。当您使用C接口时,它会愉快地链接OpenCV .lib
。但是由于ABI问题,它不会链接C ++模块。
您必须限制自己只使用C接口(即没有cv::Mat
),或者使用MinGw进行OpenCV编译(或者使用VS编译Qt)。另请参阅this thread。
答案 2 :(得分: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编译器工具链。
答案 3 :(得分:0)
似乎QtCreator找不到lib文件。 尝试按如下方式指定包含文件和库。
INCLUDEPATH += C:/OpenCV2_1/build/include/
LIBS += C:/OpenCV2_1/build/gpu/x86/lib/cxcore210d.lib
如果您使用的是opencv的预构建版本,则应该参考build文件夹。
(如果您不熟悉opencv,我建议预构建版本)