首页 > 解决方案 > OpenCV:用于 Visual Studio 项目的 32 位库和 dll

问题描述

我正在将使用 OpenCV 2.4 的 C++ Visual Studio 项目升级到更新版本的 OpenCV(例如 4.1.2 或 4.4.0)。我的项目需要 32 位和 64 位版本,因此我需要 OpenCV 库和 dll 的 32 位和 64 位版本。

但最近为 Windows 预构建的可下载版本的 OpenCV 仅包含 x64 的库和 dll。我确实在这里找到了 32 位和 64 位预编译的二进制文件(https://github.com/huihut/OpenCV-MinGW-Build),但它们是用 MinGW 构建的,没有我需要链接的 VS 兼容库.

我可以尝试构建自己的 32 位版本的 OpenCV 库,但乍一看,这似乎需要付出很多努力。OpenCV 使用 CMake 和其他我不熟悉的工具。

所以我的问题是:谁能指出我最新版本的 OpenCV 的 32 位版本,该版本具有使用 Visual Studio 构建的库?或者如果没有,任何人都可以确认他们已经使用 Visual Studio 构建了 32 位 OpenCV?如果这是我唯一的选择,我会沿着这条路走下去,但我想提前知道这是否困难(例如,OpenCV 本身可能具有 32 位不可用的依赖项?)。

任何帮助表示赞赏!

标签: c++opencv

解决方案


我自己构建了 OpenCV,结果并不难。我按照这里这里的指南进行操作。我将在下面放置我自己的详细步骤,它可能对其他人有所帮助。

我正在使用 Visual Studio Enterprise 2019。我的选择显示在括号中。

  • 从https://cmake.org/download (CMake 3.18.3)下载并安装 CMake
  • 从https://opencv.org/releases (OpenCv 4.4.0)下载 OpenCV 源代码
  • 解压源代码(c:\opencv\src)
  • 运行 CMake
  • 在 CMake UI 中,指定源代码在哪里(c:\opencv\src) 和 在哪里构建二进制文件(c:\opencv\build)
  • 检查分组高级复选框
  • 单击配置。如果 CMake 要求创建构建文件夹的权限,请允许它
  • 选择为此项目指定生成器(Visual Studio 16 2019)
  • 选择生成器的可选平台(Win32)
  • 对于要使用的可选工具集,我将其留空
  • 选择使用默认的本机编译器
  • 单击完成。CMake 将处理几分钟。

在这一点上,对我来说,有一个很大的红色项目列表,在底部的详细信息区域中,除了一些红色的 Python 错误之外,一切都很好。我不关心 Python 部分,所以:

  • 在上部窗格中,展开BUILD
  • 取消选中BUILD_opencv_python_bindings_generator
  • 取消选中BUILD_opencv_python_tests

再次单击配置...等待看到“配置完成”消息。所有的红色都消失了。单击生成并等待看到“生成完成”消息。查看您的构建文件夹...打开解决方案“OpenCV.sln”在 Visual Studio 中打开它,构建发布或调试。

如果您想进行 x64 构建,请通过执行File->Delete Cache重新开始,然后在Optional platform for generator步骤中选择 x64 。


推荐阅读