windows用mingw(g++)编译opencv,opencv_contrib,并install安装

windows下用mingw编译opencv貌似不支持cuda,选cuda会报错,我无法解决,所以没选cuda,下面两种编译方式支持。

如要用msvc编译opencv,参考我另外一篇文章

https://blog.csdn.net/weixin_44733606/article/details/135743339。

如要用Ubuntu编译opencv,参考我另外一篇文章https://blog.csdn.net/weixin_44733606/article/details/131720128。

一、安装mingw

1、如果已经安装Qt,则Qt自带mingw编译器,从Qt安装目录找到编译器所在目录即可。

例如我的在下面路径,记得添加编译器环境变量。

2、若未安装Qt,则安装Mingw即可,参考我的另外一篇文章https://blog.csdn.net/weixin_44733606/article/details/135601057。

二、安装cmake。

1、如果已经安装Qt,则Qt自带cmake,从Qt安装目录找到cmake所在目录即可。

例如我的在下面路径,记得添加cmake环境变量。

2、 若未安装Qt,则安装cmake即可。

官网下载cmakehttps://cmake.org/download/

三、下载opencv,https://github.com/opencv/opencv/releases及opencv_contribhttps://github.com/opencv/opencv_contrib

四、开始编译

1、解压opencv

解压opencv,找个合适的地方保存就行。

2、Configure

打开cmake gui程序,在下面两个框中分别输入opencv的源文件和编译目录,build-mingw为你创建的目录,可自定义命名

3、然后Configure按钮,会跳出编译器的选择框,选择Mingw Makefiles,Special native compilers

指定一下编译器的位置,如下图所示: 点finish。

4、点Configure,不出意料,会出现一堆的红色字体。

4.1、在 OPENCV_EXTRA_MODULES_PATH 中填入 OpenCV_contrib 解压文件夹 modules 的路径

4.2、取消选择 OPENCV_GENERATE_SETUPVARS

4.3、 取消选择 java 的编译选项(个人不需要)

4.4、取消test, 加速编译

4.5、勾选 BUILD_opencv_world 最终只生成一个动态链接库方便使用

4.6、勾选nonfree

4.7、再次Configure,还有报错,参考我的其他文章

https://blog.csdn.net/weixin_44733606/article/details/135716495

https://blog.csdn.net/weixin_44733606/article/details/131721057

4.8、一直configure到不出错

5、点Generate

6、编译

打开cmd,进入到自己选择的build-mingw目录,输入下面的命令执行。(-j可以加速编译,参数为cpu核数,线程数也行)

复制代码
mingw32-make -j10

7、安装

不指定安装目录,使用默认路径

复制代码
mingw32-make install

指定安装目录

复制代码
mingw32-make install destdir=C:\Windows\Qt\6.6.1\mingw_64
相关推荐
Nebula_g9 小时前
JavaSE加强:Stream流
java·开发语言·windows·stream·javase·流
在角落发呆13 小时前
软件配置备份方法:从手动到自动化的实践指南
windows·安全
lingchen190614 小时前
Win 11 系统语言栏悬浮于桌面上影响操作感受,怎么取消?
windows
梅孔立14 小时前
Windows PowerShell 升级 Pi-Coding-Agent + OpenCode,解决 OpenCode 二进制无效报错
windows
东木月16 小时前
Windows C 盘清理指南:安全删除临时文件、缓存与 Prefetch
c语言·windows·安全
水饺编程17 小时前
第1章,[Win32 章节]:Windows 的方方面面
c语言·c++·windows·visual studio
超级大福宝18 小时前
VS Code Remote-SSH 因 RemoteForward 端口冲突导致连接失败的排查与解决
运维·服务器·windows·vscode·ssh
Vex2une18 小时前
Windows PowerShell 发展史:从命令行工具到自动化核心
windows·自动化运维·命令行·powershell·cmd·脚本语言·对象管道
怎么没有名字注册了啊1 天前
Qt开发:MessageBox怎么调出标题栏那个问号按钮?
windows
李子红了时1 天前
EncFS MP中文版汉化下载(免费文件加密工具)
windows·安全