一. 背景
当前维护的项目在 Windows 操作系统下运行,并使用了 OpenCV 4.5.2 版本。
我的本地开发环境是 Mac,并且使用了更新的 OpenCV 4.8.1 版本。为了与本地开发环境保持一致,我计划升级项目中使用的 OpenCV,因为该项目还利用了一些扩展模块的功能,因此需要自行编译。
本文旨在记录我在编译过程中遇到的问题,以避免以后重蹈覆辙,并为有需要的人提供参考。
二. 需要准备的软件
CMake 3.13 或更高版本,获取地址为:https://www.php.cn/link/fa6d3cc166fbfbf005c9e77d96cba283

Visual Studio 2022 社区版,获取地址为:https://www.php.cn/link/5fa260f9aef5c32cc0ddf4934f058bdf
OpenCV 4.8.1 源码包,获取地址为:https://www.php.cn/link/8226961a64e331581440a90183cf0a1d

OpenCV 4.8.1 扩展模块源码包,获取地址为:https://www.php.cn/link/0a8d0a30ada365aee33dbf72fda7574e

三. 编译
3.1 使用 CMake
3.1.1 准备工作
将 OpenCV 4.8.1 源码包和扩展模块源码包解压到某个位置。

打开 cmake-gui,设置 OpenCV 4.8.1 源码的位置和输出编译的二进制文件的位置。

3.1.2 Configure
点击"Configure",会弹出一个窗口提示 build 目录尚未创建,是否需要创建。

点击"Yes"后,CMake 会要求你选择生成项目的工具。我们选择 Visual Studio 2022。

"Configure"配置成功后,会显示以下界面。

此时,我们可以设置扩展模块的路径。

如果需要编译 OpenCV World 模块,也需要在这里单独设置。

然后再次点击"Configure"。

此时,最好查看 CMake 的下载日志,以下是 CMake 的下载日志。

我主要修改了以下几个地方:
之后重新"Configure"即可。
3.1.3 Generate
接下来,点击"Generate"生成使用 CMake 构建的项目。

3.1.4 Open Project
最后点击"Open Project",启动 Visual Studio 2022 打开该项目。

3.2 使用 Visual Studio 2022
在编译之前,首先配置 opencv_world 模块,然后选择 release 或 debug 模式。

找到 CMakeTargets,选择 ALL_BUILD 进行生成。

上述步骤生成成功后,选择 INSTALL 进行生成。

INSTALL 生成成功后,编译过程大功告成。我们完成了 OpenCV 4.8.1 及其扩展模块的编译。

我们可以在输出编译的二进制文件的目录(C:/opencv-4.8.1/newbuild)下找到 install 文件夹。

install 文件夹最终输出的内容如下。

我们也成功编译了 opencv_world 模块。

四. 总结
本文旨在便于日后查阅和查找。
整个编译过程花费了一天多才完成。编译时遇到了各种问题,但只要仔细阅读日志进行分析,总能找到解决方法。
当然,自行编译 OpenCV 库有很多好处,可以根据自己的需要定制 OpenCV 库,可以针对特定的硬件平台优化 OpenCV 库等等。
以上就是Windows 下使用 CMake + Visual Studio 2022 编译 OpenCV 4.8.1 及其扩展模块的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号