在QT5.6下配置OPENCV3.0遇到了不少问题,总结一下。
MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称。
MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的
情况下使用 GCC(GNU Compiler Collection,GNU编译器套件GNU系统是彻底的自由软件)(GNU Compiler C)产生 Windows32 程序。
VC运行库,是Visual C++的运行库。很多程序在编制的时候,使用了微软的运行库,大大减少了软件的编码量,却提高了兼容性。
但运行的时候,需要这些运行库。这些运行库简称就是MSVC。
Windows下MSVC,Linux下GCC,而QT可以从Linux移植到win,所以采用GCC===》minGW
正因为QT采用的库和VS的不一样,所以从OPENCV下载下来的库文件并不能直接给QT使用,所以我们需要运用CMAKE产生配置文件,让minGW按照配置文件生成QT可用的库文件。
为方便,先配置好环境变量PATH然后重启方便之后的操作。
在环境变量PATH中添加:
X:\XXXX\CMake3.3.2\bin;
X:\XXXX\Qt5.6.0\5.6\mingw49_32\bin;
X:\XXXX\Qt5.6.0\Tools\mingw492_32\bin
打开CMAKE:选择opencv的sources文件夹,里面藏着CMAKE用来执行的CMakeLists.txt,然后点击configure。
将编译器文件夹配置好:
finish后出现:
不能勾选WITH_IPP,勾选WITH_OPENGL和WITH_QT
再次点击configure,直到红色消失以后,点击generate生成makefiles。
到 X:\XXXX\opencv\sources\cmake 下找到 OpenCVCompilerOptions.cmake
找到下面这句话注释掉他,以免发生错误。
add_extra_compiler_option(-Werror=non-virtual-dtor)
然后进入之前的生成目标文件夹,按下shift健+右键,打开命令调试窗口CMD 输入命令:
mingw32-make
然后就开始编译了。大概20分钟过后,编译完成,输入mingw32-make install 安装,一会就完成。
然后就是关键了!!!
将安装完成后的文件夹内的bin文件夹(里面含有动态库dll)加入到环境变量path并重启。
新建一个QT工程,打开pro文件,加入下面的配置信息:
INCLUDEPATH += G:\opencv\opencv\cmake4\install\include\
INCLUDEPATH += G:\opencv\opencv\cmake4\install\include\opencv\
INCLUDEPATH += G:\opencv\opencv\cmake4\install\include\opencv2\
LIBS += G:\opencv\opencv\cmake4\lib\libopencv_*.a
HEADERS +=
SOURCES += \
testopencv.cpp
可以看到使用的是绝对路径,路径是之前安装完成后的文件夹内的include还有lib
使用绝对路径省去很多麻烦和bug,到此,opencv3.0的函数都可以调用了。