QT5编译openCV各种出错问题及处理方法

系统为win7(32位),安装QT5.9,新的openCV 3提供的安装程序,不支持VS2010(VC10),所以用QT来编译源码。

编译过程中遇到许多问题,某些问题需要重新开始编译,参考了网上许多网友的经验,把整个步骤经过合并和优化,减少重新编译的次数,节省大家的时间。

本文主要记录编译过程中,遇到的问题及采取的处理方法,可以为大家安装遇到问题时,提供参考。


编译前准备工作:

1、下载CMake

2、下载OpenCV3.3源码

3、下载QT5


关于下载和安装的几点说明:

1、尽量下载QT5的新版本,这样mingw的版本较新,否则编译时容易出现不支持的情况(参考网上的意见)

2、如果以前安装过mingw需要将系统路径里添加的路径删除,否则容易出问题

3、QT安装路径不允许出现空格和中文

4、openCV对CMake版本有要求,应下载大于要求版本的CMake

5、编译的机器最好联网,以防编译过程中下载某些东西


安装顺序:

1、CMake

2、Qt

3、解压下载的源码


下面开始叙述编译步骤,在每步描述可能遇到的问题

1、检查系统路径,是否有mingw冲突

2、启动CMake,将源码目录和目标目录填好,点击confiure

3、在弹出的对话框,选择mingw makefiles 和 use default native compilers选项

4、系统报错,处理方法:

a、选择WITH_QT和WITH_OPENGL选项

b、在OPENCV_EXTRA_MODULES_PATH中设置好modules的路径

c、重新configure

5、继续报错,部分错误是和CMake的版本有关系,处理方法:(这里遇到多次反复,十分花费时间,请大家注意,不要遗漏其中一步)

a、重新设置红色的出错部分的路径

b、将OPENCV_EXTRA_MODULES_PATH设为空

c、在目录的CMake目录下找到OpenCVCompilerOptions.cmake文件,注释掉其中的

add_extra_compiler_option(-Werror=non-virtual-dtor)一句

d、将选项Enable_Precompiled_Headers上的勾去掉

e、将modules\videoio\src中的cap_dshow.cpp文件中

#include "DShow.h"前面加一句

#define STR_NO_DEPRECATE

f、再次configure

这次不会出错了,然后generate

6、接着进行mingw32-make

这一步如果出错,则可能需要重新安装win7系统

7、安装mingw32-make install


至此,整个编译结束。

你可能感兴趣的:(OpenCV)