编译 OpenCV 3.1.0 videoio 错误

Posted

技术标签:

【中文标题】编译 OpenCV 3.1.0 videoio 错误【英文标题】:Compilation of OpenCV 3.1.0 videoio error 【发布时间】:2016-10-02 01:20:44 【问题描述】:

我正在尝试使用 MingW 4.9.2 编译 Opencv 3.1.0,但出现以下错误

modules\videoio\CMakeFiles\opencv_videoio.dir\build.make:187: recipe for target
'modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dshow.cpp.obj' failed
mingw32-make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dsho
w.cpp.obj] Error 1
CMakeFiles\Makefile2:4340: recipe for target 'modules/videoio/CMakeFiles/opencv_
videoio.dir/all' failed
mingw32-make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2

makefile:159: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

我发现这是在 cap_dshow.cpp 构建期间的 OpenCV 构建错误。解决方案显示 here 没有必要,因为 Opencv 3.1 中的文件已经修复。

在 Cmake 阶段我已经改变了这个(通过 Cmake GUI 3.4.3),但没有工作

CMAKE_BUILD_TYPE = Debug
WITH_EIGEN = 0
WITH_OPENGL = 0
WITH_IPP = 0
WITH_QT = 1

我已经尝试了this post 中给出的解决方案,但都不起作用

add_extra_compiler_option(-Werror=non-virtual-dtor)

我的目的是使用 C++、Opencv 和 QT 的 GUI 设计器。我已经安装了库 qt-5.4.0-x64-mingw492r0-sjlj,它带有自己的 MingW 4.9.2。 (PS/对于另一个项目,我已经用 Mingw 4.9.3 编译了 Opencv3.1.0 并且它的工作完美)

谁能帮帮我!!!

【问题讨论】:

【参考方案1】:

在文件 %OPENCV_HOME%\sources\modules\videoio\src\cap_dshow.cpp 中

在顶部添加:

#define STRSAFE_NO_DEPRECATE

在 Qt 5.6.2、Mingw 4.9.2 OpenCV 3.2.0 中为我工作

【讨论】:

以上是关于编译 OpenCV 3.1.0 videoio 错误的主要内容,如果未能解决你的问题,请参考以下文章

[opencv3.2cmake error ] sys/videoio.h no such file or directories

opencv3.2.0 Cmake 3.8.0 编译问题

[OpenCV] Samples 12: laplace

ld 链接器找不到 so 库

OpenCV——释放时错误[SourceReaderCB::~SourceReaderCB terminating async callback]解决方案

yolo环境配置