QT+OpenCv利用CMake编译的注意事项
1.安装MSVC2015
(1)建议完全卸载之前的MSVC(不管是啥版本的),怎么完全卸载,百度有教程,但是百度的教程我用不好,而且下载贼慢,如果没有完全卸载,在Cmake点Configure的时候就只会出现几行红字。一直error。失败了很多回。我是没办法了只能重装系统。附件1就是百度的方法微软官方的完全卸载MSVC所有版本的工具,用法在安装包里。如果有跟我一样运行软件没啥反应的,建议直接重装系统,别挣扎了。
(2)下载完MSVC2015之后解压,那个安装.exe文件要用管理员权限打开。
(3)安装的时候要关闭杀毒软件,关闭杀毒软件,关闭杀毒软件!
(4)不要点默认安装,要点自定义安装。win7win8.1的要勾上开头C++那个,千万不要手残勾选后面的WIN10SDK!,否则,后面MSVC编译pro的一直提醒一大堆错误。win10的不知道。
(5)开始安装,等上个把小时
(6)从网上下载一个VC++合集,都装上,否则MSVC打不开。
2.Cmake构建
(1)下载安装QT4.10.0,千万不要装5.0以上的版本!!!!最好装4.1的版本,否则下面Cmake会出错!!!!!!!!等MSVC编译完成才能装5.0版本
(2)网上下载好OpenCV之后放在非违法路径里面,例如D盘某个文件夹里面,Souse code 路径选择 D:/SoftWare_Work/opencv/sources,编译路径选择D:/SoftWare_Work/opencv/build然后单击Configure之后弹出一个界面需要选择Visual Studio 14 2015,其他不要动!然后点确认。
(3)界面变成红色。然后勾选BUILD_opencv_world旁边的框再次点击Configure,要等上几分钟慢慢配置(配图1)
(4)配置完成后点击Generate,然后点击OpenProject
3.MSVC编译
(1)vs2015打开后,主菜单选择buid(编译)Batch Build(批生成),在弹出的界面上一定要勾选上ALL_BUILD两个选项和INSTALL两个选项。然后点BUILD(编译)按钮(配图2),慢慢等把可能要个把小时。编译完成之后关闭MSVC
4.QT
(1)卸载QT4的版本。装上牛X的5.9.1。注意安装的时候要选上msvc2015 32-bit 和最上面的MinGW 5.3.0 32bit
(2)在环境变量->系统变量->path里面加上D:\SoftWare_Work\opencv\build\install\x86\vc14\bin,注意添加的时候加一个英文的分号;。是刚才opencv的存放路径,要对应好,然后重启电脑
(3)在上面Cmake编译的OpenCV文件夹里面创建一个记事本文件,命名为opencv.pri,注意文件夹选项要能查看到扩展名否则这个文件实际上名称是opencv.pri.txt 后缀名是txt,那么就是错误的。
(4)编辑这个opencv.pr,里面写
INCLUDEPATH += D:/SoftWare_Work/opencv/build/install/include
Debug: {
LIBS += -lD:/SoftWare_Work/opencv/build/install/x86/vc14/lib/opencv_world310d
}
Release: {
LIBS += -lD:/SoftWare_Work/opencv/build/install/x86/vc14/lib/opencv_world310
}
注意路径匹配和OpenCV版本匹配,打开opencv/build/install/x86/vc14/lib里面看实际上是310还是330等等
(5)打开QT创建一个工程,例如text。创建的时候编译工具选择msvc2015 32-bit。创建完成后在左边项目框里找到text.pro,在最后一行加上opencv.pri的存放路径用以下格式include(D:/SoftWare_Work/opencv/opencv.pri)(配图3)
(6)在上面菜单栏里面找到qmake,点击之后项目会出现一个opencv文件夹然后在Sourse双击main.cpp 添加适量的代码(该加的加,一样的不用动)随便找个jpg的图片,放在英文路径下,替换下面程序里面imread里面的路径。
#include “mainwindow.h”
#include
#include"opencv2/opencv.hpp"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
using namespace cv;
Mat image = imread("E:/images/text.jpg");
imshow("OUTPUT",image);
MainWindow w;
w.show();
return a.exec();
}
然后点击左下角运行,能出来图片就万事大吉了!以上的步骤不要弄错,一步一步来,否则就是自找麻烦。我第一次安装就搞了两天运气好,第二次安装竟然弄了快一个星期,就是那个可恶的MSVC没有卸载干净!实在搞不定的联系我QQ731391057,或者留言。