Qt | mingw+cmake编译Opencv4.1.2

OpenCV

获取 OpenCV

从官网下载 openCV 在本指南中,使用版本4.1.2启动 opencv-3.2.0-vc14.exe 并让它解压到 d:\ 。现在文件夹 d:\opencv _4.1.2_Sources已创建。

 

 

 

将 minGW 添加到 windows PATH 变量

打开控制面板, 
系统和安全, 
系统, 
高级系统设置,
环境变量,
系统变量,
变量名称:路径
变量值:;E:\Qt\Tools\mingw810_32\bin
PS:64位的则添加
E:\Qt\Tools\mingw810_64\bin

编译 OpenCV

启动 cmake-gui.exe 然后选择以下设置:

 源代码在哪里:D:/opencv_4.1.2_Sources/opencv-4.1.2
 在哪里构建二进制文件:D:/opencv_4.1.2_Sources/opencv-4.1.2/build

 

 

 

 

然后点击Configure,让cmake创建build目录,选择如下设置:

 为此项目指定生成器:MinGW Makefiles
 指定本机编译器,下一步
 编译器 C:E:\Qt\Tools\mingw810_32\bin\gcc.exe
 编译器 C++:E:\Qt\Tools\mingw810_32\bin\g++.exe
 结束
 选中复选框 [X]WITH_QT
 选中复选框 [X]WITH_OPENGL
将D:\opencv_4.1.2_Sources\opencv-4.1.2\CMakeLists.txt打开添加如下代码,保存后退出
将 Qt5_DIR 设置为E:/Qt/5.15.1/mingw81_32/lib/cmake/Qt5
 set(CMAKE_PREFIX_PATH "E:/Qt/5.15.1/mingw81_32/lib/cmake/Qt5")
PS:QT的版本看自己的安装情况而定
 取消选中复选框 []ENABLE_PRECOMPILED_HEADERS

然后再次点击配置。

 将 QT_MAKE_EXECUTABLE 设置为 D:\Qt\5.9\mingw53_32\bin\qmake.exe
 将 Qt5Concurrent_DIR 设置为 D:\Qt\5.9\mingw53_32\lib\cmake\Qt5Concurrent
 将 Qt5Core_DIR 设置为 D:\Qt\5.9\mingw53_32\lib\cmake\Qt5Core
 将 Qt5Gui_DIR 设置为 D:\Qt\5.9\mingw53_32\lib\cmake\Qt5Gui
 将 Qt5Test_DIR 设置为 D:\Qt\5.9\mingw53_32\lib\cmake\Qt5Test
 将 Qt5Widgets_DIR 设置为 D:\Qt\5.9\mingw53_32\lib\cmake\Qt5Widgets
 将 Qt5OpenGL_DIR 设置为 D:\Qt\5.9\mingw53_32\lib\cmake\Qt5OpenGL
 将 CMAKE_BUILD_TYPE 设置为 Release
PS:此时生成的库为分散的,并不是一个dll,引入的时候不方便,可以勾选BUILD_opencv_world将动态库打包成一个

然后再次点击配置 然后点击生成

接下来打开cmd,输入以下命令。为了加快编译速度,-j 标志可用于同时运行多个编译作业。在 8 核 CPU 上,您可以将其设置为 8 或更高,以便使用所有内核。在具有 8GB 内存的 i7-3770@3.4GHz 核心上,编译大约需要 6 分钟。

 d:
 cd d:\
 cd opencv-build  
 mingw32-make -j 8
 mingw32-make install
 
 

如果在文件 opencv/sources/modules/videoio/src/cap_dshow.cpp 中出现以下错误:'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' 未在此范围内声明...

试试这个:把下面这行:#define NO_DSHOW_STRSAFE,在行之前:#include "DShow.h"

如果您有错误:'nullptr' 未在此范围内声明..

试试这个:在 cmake 中选中 ENABLE_CXX11 框

如果在文件 modules\videoio\src\cap_msmf.cpp 中出现错误: using invalid field '{anonymous}::ComPtr<T>::p'..

试试这个:在 cmake 中取消选中 WITH_MSMF

posted @ 2021-07-05 13:56  zhxzh  阅读(166)  评论(1编辑  收藏  举报