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
posted @ 2025-03-10 10:06  笑眯眯办大事  阅读(177)  评论(0)    收藏  举报