Qt5.9.1配置OpenCV3.4错误及解决办法(mingw32)

本文档详细记录了在使用mingw32编译OpenCV3.4.1时遇到的各种错误及解决方案,包括官方文档中的建议、错误提示如'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA'未声明、'IUnknown'非虚拟析构函数警告、编译过程中不同阶段的报错以及Python部分的错误。解决方法涉及修改源代码、取消预编译头文件选项,并针对mingw32的特点进行特定配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在用cmake编译opencv3.4.1出现了不少错误,用的编译器是mingw,报过几种错误,现将其整理如下:

配置Qt与opencv可以参考官方文档: qt with opencv

1. 官方文档中提到的取消勾选ENABLE_PRECOMPILED_HEADERS和报错信息:

'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' was not declared in this scope ,在 #include "DShow.h" 之前添加#define NO_DSHOW_STRSAFE;

2.网上提到的error: base class 'struct IUnknown' has accessible non-virtual destructor [-Werror=non-virtual-dtor]

到sources目录下搜索OpenCVCompilerOptions.cmake,将里面的add_extra_compiler_option(-Werror=non-virtual-dtor注释掉

如果你尝试了各种方法均无果,那么请直接从这开始:

在编译二进制文件的路径下进行mingw32-make报错,采用的解决办法是,直接下载opencv3.4的sources压缩包,之前都是下载opencv-3.4.0-vc14_vc15这种格式的可执行文件进行提取,vc编译器和mingw32还是有一定的差异的,尝试各种解决办法都是到42%,48%,72%报错失败,直接在cmake中填上sources解压好的文件路径,以及一个build-opencv路径,和官网提示的类似,记住该路径即可,至于编译器选择gcc和g++前面的官方文档已详细介绍,值得注意的是这样编译还是会在48%左右报错,但解决办法就是官网提供的两个,将ENABLE_PRECOMPILED_HEADERS取

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值