Win10系统下OpenCV动态库的编译流程
一、前言
之前编写了编辑OpenCV静态库的方式,今天记录一下编译动态库的流程。
二、步骤
1、前置条件
- Windows 操作系统
- Visual Studio 2022 (含C++开发工具) y
- 由于我的QT项目是使用MSVC_2022编译的,所以OpenCV所需的编译器也需要保持一致。
- CMake 3.16+
- Git (用于克隆源码)
2、目录结构
D:\DeskTop\QT_Program\ # 主工作目录
│
├── opencv\ # OpenCV源码目录
├── opencv_build\ # 构建目录
└── opencv_dynamic\ # 静态库安装目录
3、完整编译流程
3.1 获取OpenCV源码
通过git获取源码仓库,然后切换到需要的版本(这里以4.10.0为例子)
cd D:\DeskTop\QT_Program
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.10.0
3.2 创建构建目录
# 创建构建目录
mkdir D:\DeskTop\QT_Program\opencv_build
mkdir D:\DeskTop\QT_Program\opencv_dynamic
3.3 配置CMake项目
进入构建目录
cd D:\DeskTop\QT_Program\opencv_build
使用CMake配置OpenCV静态库 (PowerShell命令)
cmake -G "Visual Studio 17 2022" -A x64 `
-D CMAKE_BUILD_TYPE=Release `
-D CMAKE_INSTALL_PREFIX=D:/DeskTop/QT_Program/opencv_dynamic `
-D BUILD_SHARED_LIBS=ON `
-D BUILD_EXAMPLES=OFF `
-D BUILD_TESTS=OFF `
-D BUILD_PERF_TESTS=OFF `
-D BUILD_opencv_world=OFF `
-D WITH_QT=ON `
-D WITH_OPENGL=ON `
-D OPENCV_GENERATE_PKGCONFIG=ON `
D:/DeskTop/QT_Program/opencv
Cmake配置选项说明
| 选项 | 说明 | 值 |
|---|---|---|
| -G "Visual Studio 17 2022" -A x64 | 指定生成器为Visual Studio 2022,目标架构为64位 | Visual Studio 17 2022,x64 |
| CMAKE_BUILD_TYPE | 设置构建类型(Debug/Release) | Release |
| CMAKE_INSTALL_PREFIX | 指定OpenCV库的安装路径 | D:/DeskTop/QT_Program/opencv_install |
| BUILD_SHARED_LIBS | 是否构建动态链接库(DLL),ON为动态库,OFF为静态库 | ON |
| BUILD_EXAMPLES | 是否编译OpenCV示例代码 | OFF |
| BUILD_TESTS | 是否编译OpenCV测试代码 | OFF |
| BUILD_PERF_TESTS | 是否编译OpenCV性能测试代码 | OFF |
| BUILD_opencv_world | 是否编译合并的单个大型库文件(opencv_world.dll) | OFF |
| WITH_QT | 是否启用Qt支持(用于GUI) | ON |
| WITH_OPENGL | 是否启用OpenGL支持 | ON |
| OPENCV_GENERATE_PKGCONFIG | 是否生成pkg-config文件(用于Linux系统) | ON |
3.4 编译与安装
编译Release版本
cmake --build . --config Release --parallel 8
安装到指定目录
cmake --install . --config Release
3.5 验证安装结果
检查动态库文件
ls D:/DeskTop/QT_Program/opencv_install/x64/vc17/bin
3.6预期结果:
PS D:\DeskTop\QT_Program\opencv_build> ls D:/DeskTop/QT_Program/opencv_dynamic/x64/vc17/bin
目录: D:\DeskTop\QT_Program\opencv_dynamic\x64\vc17\bin
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/10/2025 9:58 AM 42496 opencv_annotation.exe
-a---- 3/10/2025 9:57 AM 3225600 opencv_calib3d4100.dll
-a---- 3/10/2025 9:56 AM 14841344 opencv_core4100.dll
-a---- 3/10/2025 9:57 AM 7485952 opencv_dnn4100.dll
-a---- 3/10/2025 9:57 AM 905216 opencv_features2d4100.dll
-a---- 3/10/2025 9:56 AM 586240 opencv_flann4100.dll
-a---- 3/10/2025 9:57 AM 358912 opencv_highgui4100.dll
-a---- 3/10/2025 9:57 AM 3859456 opencv_imgcodecs4100.dll
-a---- 3/10/2025 9:56 AM 28862976 opencv_imgproc4100.dll
-a---- 3/10/2025 9:58 AM 150528 opencv_interactive-calibration.exe
-a---- 3/10/2025 9:56 AM 792064 opencv_ml4100.dll
-a---- 3/10/2025 9:58 AM 52224 opencv_model_diagnostics.exe
-a---- 3/10/2025 9:58 AM 1575424 opencv_objdetect4100.dll
-a---- 3/10/2025 9:57 AM 835072 opencv_photo4100.dll
-a---- 3/10/2025 9:58 AM 1124864 opencv_stitching4100.dll
-a---- 3/10/2025 9:58 AM 37376 opencv_version.exe
-a---- 3/10/2025 9:58 AM 34816 opencv_version_win32.exe
-a---- 3/10/2025 9:58 AM 957440 opencv_video4100.dll
-a---- 3/10/2025 9:57 AM 884736 opencv_videoio4100.dll
-a---- 3/10/2025 9:54 AM 26391552 opencv_videoio_ffmpeg4100_64.dll
-a---- 3/10/2025 9:58 AM 58368 opencv_visualisation.exe

浙公网安备 33010602011771号