将 QtCreator 2.7.0 与 OpenCV 2.4.5 一起使用
Posted
技术标签:
【中文标题】将 QtCreator 2.7.0 与 OpenCV 2.4.5 一起使用【英文标题】:Using QtCreator 2.7.0 with OpenCV 2.4.5 【发布时间】:2013-06-26 10:43:27 【问题描述】:到目前为止,我一直在 VS 2012 中使用 OpenCV。一切正常。现在我正在尝试在 QtCreator 中工作,但我遇到了问题。当我在调试中运行项目时,出现错误:
"C:\Qt\Qt5.0.2\Tools\QtCreator\bin\DetectorPietoni\mainwindow.cpp:4: error: C1083: Cannot open include file: 'opencv2/core/core.hpp': No such file or directory"
在发布模式下出现错误:
"mainwindow.obj:-1: error: LNK2019: unresolved external symbol "class cv::Mat __cdecl cv::imread(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" (?imread@cv@@YA?AVMat@1@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) referenced in function "private: void __cdecl MainWindow::on_pushButton_clicked(void)" (?on_pushButton_clicked@MainWindow@@AEAAXXZ)".
我正在运行的代码是下一个:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
ui->setupUi(this);
MainWindow::~MainWindow()
delete ui;
void MainWindow::on_pushButton_clicked()
cv::Mat img = cv::imread("C:\\PedestrianDetectionDataset\\test\\pos\\1.png");
我的设置是:
TARGET = DetectorPietoni
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
INCLUDEPATH += C:\OpenCV-2.4.5\\opencv\build\include
CONFIG(release,debug|release)
LIBS += C:\\OpenCV-2.4.5\\opencv\\build\\x64\\vc11\\lib\\opencv_core245.lib \
C:\\OpenCV-2.4.5\\opencv\\build\\x64\\vc11\\lib\\opencv_features2d245.lib \
C:\\OpenCV-2.4.5\\opencv\\build\\x64\\vc11\\lib\\opencv_highgui245.lib \
C:\\OpenCV-2.4.5\\opencv\\build\\x64\\vc11\\lib\\opencv_imgproc245.lib \
C:\\OpenCV-2.4.5\\opencv\\build\\x64\\vc11\\lib\\opencv_ml245.lib
CONFIG(debug,debug|release)
LIBS += C:\\OpenCV-2.4.5\\opencv\\build\\x64\\vc11\\lib\\opencv_core245d.lib \
C:\\OpenCV-2.4.5\\opencv\\build\\x64\\vc11\\lib\\opencv_features2d245d.lib \
C:\\OpenCV-2.4.5\\opencv\\build\\x64\\vc11\\lib\\opencv_highgui245d.lib \
C:\\OpenCV-2.4.5\\opencv\\build\\x64\\vc11\\lib\\opencv_imgproc245d.lib \
C:\\OpenCV-2.4.5\\opencv\\build\\x64\\vc11\\lib\\opencv_ml245d.lib
有什么想法吗?
【问题讨论】:
您的包含路径有几个单反斜杠,请尝试将 \ 替换为 \\,或者改用斜杠。不过,不确定这是否能解决问题。 在RUN之前需要运行qmake吗? 是的,如果您仔细检查了路径,请执行清理、qmake、构建、运行 如果找不到包含,则包含路径错误。如果无法链接,则说明您没有添加正确的库(还要检查平台/配置的差异)。构建不会创建包含实际编译器/链接器输出的日志文件/输出,因此您至少可以根据您的设置验证 QtCreator 是否正确调用了它们? 【参考方案1】:尝试将opencv.hpp
从C:\OpenCV-2.4.5\opencv\build\include\opencv2
处理为C:\OpenCV-2.4.5\opencv\build\include
然后它可能能够找到包含。
【讨论】:
以上是关于将 QtCreator 2.7.0 与 OpenCV 2.4.5 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
Qt Creator 2.7.0 (Qt 5.0.2) 中的 C++11 线程支持
在 QtCreator 中从 Qt 调用 fortran 代码
QtCreator:将 QtCreatorCodeStyle 与 clang-format 统一起来