OpenCV 从 VS2013 迁移到 QT 5.5 [英] OpenCV migration from VS2013 to QT 5.5
问题描述
我已经从
我使用基类QDialog"和这些工具包制作了新的QT Witgets Application":
使用这个 .pro 文件:
#-------------------------------------------------## QtCreator 创建的项目 2015-10-07T10:54:31##-------------------------------------------------QT += 核心 guiGreaterThan(QT_MAJOR_VERSION, 4):QT += 小部件目标 = asd模板 = 应用程序源 += main.cpp\对话框.cpp标题 += dialog.h表单 += dialog.uiINCLUDEPATH += D:\opencv_2411\opencv\build\includeLIBS += D:\opencv_2411\opencv\build\x64\vc12\lib\-lopencv_calib3d2411.lib \-lopencv_core2411.lib \-lopencv_features2d2411.lib \-lopencv_flann2411.lib \-lopencv_highgui2411.lib \-lopencv_imgproc2411.lib \-lopencv_ml2411.lib \-lopencv_objdetect2411.lib \-lopencv_photo2411.lib \-lopencv_stitching2411.lib \-lopencv_superres2411.lib \-lopencv_ts2411.lib \-lopencv_video2411.lib \-lopencv_videostab2411.lib
我运行 qmake 来应用 .pro 文件中的更改.在我的源文件中,我有:
#include "dialog.h"#include #include #include #include int main(int argc, char *argv[]){QApplication a(argc, argv);对话 w;w.show();返回 a.exec();}
当构建运行时出现以下错误:
<块引用>:-1: 错误: LNK1104: 无法打开文件'D:\opencv_2411\opencv\build\x64\vc12\lib.obj'
我该如何解决这个问题?
感谢 Miki 对 .pro 文件的最后补充是:
INCLUDEPATH += D:\opencv_2411\opencv\build\includeLIBS += -LD:\opencv_2411\opencv\build\x64\vc12\lib\-lopencv_calib3d2411 \-lopencv_core2411 \-lopencv_features2d2411 \-lopencv_flann2411 \-lopencv_highgui2411 \-lopencv_imgproc2411 \-lopencv_ml2411 \-lopencv_objdetect2411 \-lopencv_photo2411 \-lopencv_stitching2411 \-lopencv_superres2411 \-lopencv_ts2411 \-lopencv_video2411 \-lopencv_videostab2411
但如果您仍然有 imread 和其他功能的问题,请参阅this主题.
I have downloaded OpenCV 2.4.11 for windows from here and have set it up for Visual Studio 2013(x86) like this way:
RB=right button
- RB on project -> Configuration Properties -> Debugging -> Environment
PATH=%PATH%;D:\opencv_2411\opencv\build\x86\vc12\bin
- RB on project -> Configuration Properties -> C/C++ -> General -> Additional Include Directories
D:\opencv_2411\opencv\build\include
- RB on project -> Configuration Properties -> Linker -> General -> Additional Library Directories
D:\opencv_2411\opencv\build\x86\vc12\lib
- RB on project -> Configuration Properties -> Linker -> Input -> Additional Library Directories
opencv_calib3d2411d.lib opencv_contrib2411d.lib opencv_core2411d.lib opencv_features2d2411d.lib opencv_flann2411d.lib opencv_gpu2411d.lib opencv_highgui2411d.lib opencv_imgproc2411d.lib opencv_legacy2411d.lib opencv_ml2411d.lib opencv_nonfree2411d.lib opencv_objdetect2411d.lib opencv_ocl2411d.lib opencv_photo2411d.lib opencv_stitching2411d.lib opencv_superres2411d.lib opencv_ts2411d.lib opencv_video2411d.lib opencv_videostab2411d.lib
- The includes:
#include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std;
Everything was OK, but now I am trying to do the same thing in QT 5.5:
I made new "QT Witgets Application" with base class "QDialog" and these kits:
With the use of this .pro file:
#-------------------------------------------------
#
# Project created by QtCreator 2015-10-07T10:54:31
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = asd
TEMPLATE = app
SOURCES += main.cpp\
dialog.cpp
HEADERS += dialog.h
FORMS += dialog.ui
INCLUDEPATH += D:\opencv_2411\opencv\build\include
LIBS += D:\opencv_2411\opencv\build\x64\vc12\lib \
-lopencv_calib3d2411.lib \
-lopencv_core2411.lib \
-lopencv_features2d2411.lib \
-lopencv_flann2411.lib \
-lopencv_highgui2411.lib \
-lopencv_imgproc2411.lib \
-lopencv_ml2411.lib \
-lopencv_objdetect2411.lib \
-lopencv_photo2411.lib \
-lopencv_stitching2411.lib \
-lopencv_superres2411.lib \
-lopencv_ts2411.lib \
-lopencv_video2411.lib \
-lopencv_videostab2411.lib
I run qmake to apply changes in .pro file. In my source file I have:
#include "dialog.h"
#include <QApplication>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Dialog w;
w.show();
return a.exec();
}
When the Build is Run the following error occures:
:-1: error: LNK1104: cannot open file 'D:\opencv_2411\opencv\build\x64\vc12\lib.obj'
How can I fix this?
Thanks to Miki the final addition to the .pro file is this:
INCLUDEPATH += D:\opencv_2411\opencv\build\include
LIBS += -LD:\opencv_2411\opencv\build\x64\vc12\lib \
-lopencv_calib3d2411 \
-lopencv_core2411 \
-lopencv_features2d2411 \
-lopencv_flann2411 \
-lopencv_highgui2411 \
-lopencv_imgproc2411 \
-lopencv_ml2411 \
-lopencv_objdetect2411 \
-lopencv_photo2411 \
-lopencv_stitching2411 \
-lopencv_superres2411 \
-lopencv_ts2411 \
-lopencv_video2411 \
-lopencv_videostab2411
But if you still have problems with imread and other functions see this topic.
这篇关于OpenCV 从 VS2013 迁移到 QT 5.5的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!