QT5.9.1和opencv3.3配置(win10)

来源:互联网 发布:软件测试 西安 编辑:程序博客网 时间:2024/06/07 18:44

环境配置

首先你要安装好CMake、QT、opencv,并且配置好相应的环境变量

接着我们要对opencv进行编译,我这里使用QT自带的MinGW。这里要注意的是,如果之前有安装过MinGW,并且配置过相应的环境变量的话,记得要把环境变量里面的值删除,否则会与QT自带的MinGW冲突。

这个是我安装opencv的位置



然后在where is the source code 和 where to bulid the binaries中分别添加opencv的路径和要编译的位置,这里我的编译文件夹设置为QT_bulid



下面这一步很关键,点击configure,然后选择默认选项Use default native compliers,如果这里出现了错误,请仔细检查环境变量中是否有其他的MinGW。



然后将WITH_QT和WITH_OPENGL选上,将OPENCV_EXTRA_MODULES_PATH设置,我这里设为F:\opencv\opencv3\opencv-3.3.0\modules再,根据你的opencv解压路径变化,再次Configure。





接着会报一系列错误



将上图中的红色部分的Value变为

F:\qt5.9\5.9.1\mingw53_32\bin\qmake.exeF:\qt5.9\5.9.1\mingw53_32\lib\cmake\Qt5ConcurrentF:\qt5.9\5.9.1\mingw53_32\lib\cmake\Qt5CoreF:\qt5.9\5.9.1\mingw53_32\lib\cmake\Qt5GuiF:\qt5.9\5.9.1\mingw53_32\lib\cmake\Qt5TestF:\qt5.9\5.9.1\mingw53_32\lib\cmake\Qt5Widgets

然后又再次报错,道路总是这么的曲折!^_^这次的问题出在了Qt5OpenGL_DIR(当然可能会有别的红色部分,我们只关心gl相关的错误)

将他设置为F:\qt5.9\5.9.1\mingw53_32\lib\cmake\Qt5OpenGL,最后所有都设置好后,如下图(当然你可能和我的图不一样,不用担心,只要设置好就ok)

注意到这里,我们要记得将之前设置的OPENCV_EXTRA_MODULES_PATH置为空,也就是开始时什么都没有的状态,否则会出问题。另外在F:\opencv\opencv3\opencv-3.3.0\cmake文件夹下找到OpenCVCompilerOptions.cmake文件,将add_extra_compiler_option(-Werror=non-virtual-dtor)前面加一个#,再次Configure。



这次没出现问题了,谢天谢地!!!点击Generate

在我们之前设置的文件夹QT_bulid中,建立这样一个批处理文件run.bat,内容如下

mingw32-makemingw32-make install

双击批处理即可。

在编译过程中会出现这样的一个问题,果然是命途多舛,哎!!!

windres.exe: unknown option -- W

问题的原因出在cmake的版本,如果使用的是3.8就没有问题,别的版本就不清楚了,我使用的是3.10版本,爆了这样的错误。

不幸的是,你要按照之前的步骤重新来过,再来过之前,先把原来的相关文件夹清空,避免再次出现一些不相关的问题。



又回到了那个熟悉的界面,我发誓我真的不想再见到它了!!!将ENABLE_PRECOMPILED_HEADERS的钩去掉。再次configure,ok没报错,接着generate。

通过之前写的批处理,此时你应该把它删除了,所以再次建立一个批处理,双击它。

不过居然又报错了,呵呵!!!

modules\videoio\CMakeFiles\opencv_videoio.dir\build.make:187: recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dshow.cpp.obj' failedmingw32-make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dshow.cpp.obj] Error 1CMakeFiles\Makefile2:2912: recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/all' failedmingw32-make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2Makefile:161: recipe for target 'all' failedmingw32-make: *** [all] Error 2

F:\opencv\opencv3\opencv-3.3.0\modules\videoio\src文件夹中的cap_dshow.cpp中添加

#define STRSAFE_NO_DEPRECATE

然后再按上面的步骤重新来一遍,我呵呵了!!!记得不要漏了步骤,否则你懂的!!!!

我的笔记本配置比较老是i7-4910的cpu,所以花费了很长的时间编译,不过让我感到欣慰的是,总算配置好了。^_^!!!

最后一步就是新建一个文件夹,例如F:\opencv\opencv3\QT_opencv将opencv的安装文件夹F:\opencv\opencv3\opencv-3.3.0下的include文件夹copy过来,再将之前建立的目录F:\opencv\opencv3\QT_bulid下的bin和lib文件夹copy过来。最后将F:\opencv\opencv3\QT_bulid\bin添加到环境变量。将之前install opencv的目录下的所有文件copy过来,注意这里的install opencv目录是指后来编译安装目录,不是之前的opencv目录,我这里是F:\opencv\opencv3\QT_bulid\install

ok,所有工作完成。

最后为了节省大家的时间,我把编译后的opencv3.3传到了CSDN上,由于上传大小限制,所以分成了两个文件,我真的不是为了骗积分(好吧,其实有一点╮(╯-╰)╭)!opencv3.3编译文件opencv3.3编译文件2

下一节正式开始我们的编程之旅^_^!!

原创粉丝点击