系统为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
至此,整个编译结束。
