【发布时间】:2015-10-23 01:35:32
【问题描述】:
我想在 Qt 中链接 OpenCV。我完全完成了here 的所有步骤,并且每一步都成功。 但现在我有一些错误,在 Linux 上得到了回答 here,但我找不到 Windows 的答案。
这是我的代码示例:
main.cpp
#include <opencv2/opencv.hpp>
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
int main(int argc, char *argv[])
{
cv::Mat input;
input = cv::imread("C:\\Users\\IS UEFI\\Desktop\\pelak_khali.jpg");
QApplication a(argc, argv);
QString plate = "";
MainWindow w(plate);
w.show();
std::thread thread(chenges_on_plate, &w);
int rc = a.exec();
thread.join(); // wait for the thread to finish
return rc;
}
.pro 文件
INCLUDEPATH += D:\QtCommercial\opencv\opencv\build\include
CONFIG(release,debug|release)
{
LIBS += D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_calib3d2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_contrib2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_core2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_features2d2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_flann2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_gpu2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_highgui2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_imgproc2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_legacy2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_ml2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_nonfree2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_objdetect2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_ocl2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_photo2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_stitching2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_superres2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_ts2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_video2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_videostab2411.lib
}
CONFIG(debug,debug|release)
{
LIBS += D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_calib3d2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_contrib2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_core2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_features2d2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_flann2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_gpu2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_highgui2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_imgproc2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_legacy2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_ml2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_nonfree2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_objdetect2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_ocl2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_photo2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_stitching2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_superres2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_ts2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_video2411.lib \
D:\QtCommercial\opencv\opencv\build\x86\vc10\lib\opencv_videostab2411.lib
}
我正在链接所有库,我使用“/”而不是“\”,但它也不起作用。
我做了很多方法来修复它,但不幸的是他们无法帮助我。
这是我的错误:
error: undefined reference to `cv::imread(std::string const&, int)'
error: undefined reference to `cv::fastFree(void*)'
error: undefined reference to `cv::Mat::copySize(cv::Mat const&)'
error: undefined reference to `cv::Mat::deallocate()'
感谢您的帮助。
【问题讨论】:
-
Qt 使用的编译器是什么?
-
我正在使用 MinGW 32 位。 @三木
-
您使用的是使用 msvc10 构建的 OpenCV。这不会很好......
-
我同时拥有 Qt 5.2.1(MSVC 2010. 32 位)和 Qt 5.0.1(32 位)版本,并且它们都出现了。@Miki
标签: c++ qt opencv qt-creator