【问题标题】:i am getting error while mingw is compiling opencv for c++?mingw 为 c++ 编译 opencv 时出现错误?
【发布时间】:2019-04-03 04:35:28
【问题描述】:

好的,我正在尝试为人体检测程序设置环境..我将使用的编程语言是 c++,编译器是代码块.. 我已经下载了opencv 4.1 还下载了 CMake 和 mingw 我还在环境设置中添加了路径.. 我在 c:\opencv\sources 文件夹中提取了 opencv 通过使用 cmake,我在 c:\opencv\build

中配置并生成了构建文件

之后我打开 C:\opencv\source\opencv\build 这个文件夹并右键单击它并打开 powershell 并输入 mingw32-make commnd。

这样 Mingw 将开始编译 OpenCV 但是在出现 5% 错误后弹出...

PS C:\opencv\source\opencv\build> mingw32-make

[ 2%] 构建目标 zlib [ 2%] 构建 C 对象 3rdparty/libjpeg-turbo/CMakeFiles/libjpeg-turbo.dir/src/jmemmgr.c.obj C:\opencv\source\opencv\sources\3rdparty\libjpeg-turbo\src\jmemmgr.c:在函数“realize_virt_arrays”中: C:\opencv\source\opencv\sources\3rdparty\libjpeg-turbo\src\jmemmgr.c:662:11: error: 'SIZE_MAX' undeclared (第一次在这个函数中使用) 如果(SIZE_MAX - 最大空间 * [3rdparty/libjpeg-turbo/CMakeFiles/libjpeg-turbo.dir/src/jmemmgr.c.obj] 错误 1 CMakeFiles\Makefile2:312:目标“3rdparty/libjpeg-turbo/CMakeFiles/libjpeg-turbo.dir/all”的配方失败 mingw32-make[1]: * [3rdparty/libjpeg-turbo/CMakeFiles/libjpeg-turbo.dir/all] 错误 2 Makefile:161:目标“全部”的配方失败 mingw32-make: *** [全部] 错误 2

【问题讨论】:

  • 请不要在此处将错误消息作为屏幕截图链接发布!根据需要发布带有格式正确的代码和错误消息的minimal reproducible example
  • 恕我直言,先生,我是新来的.....如果您能帮助我,我将不胜感激??
  • 阅读How to Ask 会给你一些关于如何解决这个问题的提示。
  • 以下是从命令窗口复制文本的更多帮助:stackoverflow.com/questions/11543578/…
  • 据我所知,我已经改进了我的问题..希望您能理解这一点....先生...感谢您的快速回复,我没想到会这么快回复... .

标签: c++ opencv


【解决方案1】:

其实可以通过mingw32编译opencv 3.4.3(我用5.3.0做实例)。遵循本指南。它有点旧,但甚至适用于 opencv 3.4.3 构建步骤:

  1. 从官方 github repo 下载最后一个 Opencv 版本(假设您已将 opencv 下载到磁盘上某处的“opencv”目录中)
  2. 转到 opencv/modules/videoio/src,打开 cap_dshow.hpp,粘贴 #define NO_DSHOW_STRSAFE(在所有其他文件的顶部),保存文件以提交更改
  3. 安装CMake(我用的是3.5.1)
  4. 打开 CMake,将 Opencv3.4.3 源位置指向您要构建它们的位置(假设它是磁盘上的“构建”目录),按“配置按钮”
  5. 从对话框中选择“Mingw Makefiles”并等待 utill 源将被预处理
  6. 所有选项都是红色是正常的,在CMake窗口的右上方检查“分组”,现在我们应该检查一些标志:

    在 CMAKE 组中:对于选项 CMAKE_BUILD_TYPE 写入 Release(构建 opencv 的发布版本),您也可以在此处指定构建后 Opencv 二进制文件的安装位置

    在 ENABLE 组中:选中 ENABLE_CXX11 并取消选中 ENABLE_PRECOMPILED_HEADERS

    在 WITH 组中:取消选中 WITH_MSMF

  7. 按“配置”按钮,直到处理完成,现在所有选项都应变为白色

  8. 按“生成”按钮并等待(在您的构建目录中应创建 Makefile,此步骤后您可以关闭 CMake)

  9. 确保您的 mingw 工具链位置对您的系统已知(查看系统环境变量 PATH 是否包含 mingw 工具链的路径)

  10. 打开 cmd.exe,将目录更改为你的 opencv 的构建目录

  11. 让我们构建opencv(-j[uint] - 选项指定要使用的线程数)

    .../build> mingw32-make -j4

  12. 让我们安装opencv

    .../build> mingw32-make 安装

  13. 完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多