c++ - 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 位不可用的依赖项?)。
任何帮助表示赞赏!
解决方案
我自己构建了 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 。
推荐阅读
- sql - Converting column to decimal in stored procedure
- python - 为什么python打印最后一个键
- python - 如何从数据库中获取数据到模态形式?
- javascript - Javascript事件目标值显示输入框的先前值
- spring - Spring Config 未获取环境变量
- amazon-web-services - SSM 文档中的 Active Directory DNS 服务器 IP 地址列表
- android - 在 Android 上启用与图表的交互(放大/缩小) MPAndroidChart
- keycloak - 从 3.4.3-Final 升级到 10.0.2 后,在 Keycloak 生成的访问令牌中找不到“nbf”属性
- javascript - 仅在 javascript 中获取新键入的值
- node.js - Amazon CDK:构造类型不正确,即使它是从 cdk.Construct 扩展而来的?