在用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中填上sou