我在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和-我喜欢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中工作。
3条答案
按热度按时间xmjla07d1#
Qt使用MinGW编译器和链接器。当你使用C接口时,它会很高兴地链接OpenCV
.lib
。但是由于ABI问题,它不会链接C++模块。你必须限制自己只使用C接口(即没有
cv::Mat
),或者让OpenCV用MinGw编译(或者用VS编译Qt)。oyxsuwqo2#
这是我的.pro文件的外观
并且替换了
与
上面的.pro文件非常适合我。我已经用mingw编译了OpenCV,并在Qt中使用了mingw编译器工具链。
0ejtzxu13#
QtCreator似乎找不到lib文件。请尝试按如下方式指定包含文件和lib。
如果您使用是opencv的预构建版本,则应该参考build文件夹。
(如果您对opencv不太熟悉,我建议您使用预构建版本)