如何详细Win10系统下OpenCV静态库的编译流程为?

摘要:一、前言 QT项目需要使用到OpenCV作为图像处理,需要导入静态库,这样可以避免最后导出的exe文件放到其他没有OpenCV环境的电脑当中出现无法使用的情况。记录一下自己编译整个OpenCV的流程。 二、步骤 1、前置条件 Windows
一、前言 QT项目需要使用到OpenCV作为图像处理,需要导入静态库,这样可以避免最后导出的exe文件放到其他没有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_static\ # 静态库安装目录 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_static 3.3 配置CMake项目 进入构建目录 cd D:\DeskTop\QT_Program\opencv_build 使用CMake配置OpenCV静态库 (PowerShell命令) cmake -G "Visual Studio 17 2022" -A x64 ` -DCMAKE_INSTALL_PREFIX=D:/DeskTop/QT_Program/opencv_static ` -DBUILD_SHARED_LIBS=OFF ` -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded ` -DWITH_OPENCL=OFF ` -DWITH_CUDA=OFF ` -DWITH_IPP=OFF ` -DBUILD_TESTS=OFF ` -DBUILD_PERF_TESTS=OFF ` -DBUILD_EXAMPLES=OFF ` -DBUILD_DOCS=OFF ` -DBUILD_JAVA=OFF ` -DBUILD_opencv_apps=OFF ` -DBUILD_opencv_python2=OFF ` -DBUILD_opencv_python3=OFF ` -DBUILD_opencv_world=ON ` -DWITH_FFMPEG=OFF ` -DWITH_GTK=OFF ` -DWITH_MSMF=OFF ` -DWITH_QUIRC=OFF ` -DWITH_TIFF=OFF ` -DBUILD_JPEG=ON ` -DBUILD_PNG=ON ` -DBUILD_WEBP=OFF ` D:\DeskTop\QT_Program\opencv Cmake配置选项说明 选项 说明 值 CMAKE_INSTALL_PREFIX 安装目录 静态库目标路径 BUILD_SHARED_LIBS 是否构建动态库 OFF(生成静态库) CMAKE_MSVC_RUNTIME_LIBRARY 运行时库 MultiThreaded(静态运行时/MT) WITH_OPENCL/CUDA/IPP 扩展功能 OFF(减少依赖) BUILD_TESTS/EXAMPLES 测试和示例 OFF(减少构建内容) BUILD_opencv_python* Python绑定 OFF(不需要) BUILD_opencv_world 合并库 ON(生成单个静态库) WITH_FFMPEG/GTK 多媒体支持 OFF(减少依赖) BUILD_JPEG/PNG 图像格式 ON(内置支持) 3.4 编译与安装 编译Release版本 cmake --build . --config Release --parallel 8 安装到指定目录 cmake --install . --config Release 3.5 验证安装结果 检查静态库文件 dir D:\DeskTop\QT_Program\opencv_static\x64\vc17\staticlib\*.lib 检查头文件 dir D:\DeskTop\QT_Program\opencv_static\include\opencv2 3.6预期结果: PS D:\DeskTop\QT_Program\opencv_build> dir D:\DeskTop\QT_Program\opencv_static\x64\vc17\staticlib\*.lib 目录: D:\DeskTop\QT_Program\opencv_static\x64\vc17\staticlib Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 3/7/2025 7:04 PM 15118518 IlmImf.lib -a---- 3/7/2025 7:04 PM 209632 ittnotify.lib -a---- 3/7/2025 7:04 PM 1207842 libjpeg-turbo.lib -a---- 3/7/2025 7:04 PM 877228 libopenjp2.lib -a---- 3/7/2025 7:04 PM 668674 libpng.lib -a---- 3/7/2025 7:04 PM 12700048 libprotobuf.lib -a---- 3/7/2025 7:04 PM 1556710 libwebp.lib -a---- 3/7/2025 7:07 PM 155537580 opencv_world4100.lib -a---- 3/7/2025 7:04 PM 190618 zlib.lib PS D:\DeskTop\QT_Program\opencv_build> dir D:\DeskTop\QT_Program\opencv_static\include\opencv2 目录: D:\DeskTop\QT_Program\opencv_static\include\opencv2 Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 3/7/2025 7:08 PM calib3d d----- 3/7/2025 7:08 PM core d----- 3/7/2025 7:08 PM dnn d----- 3/7/2025 7:08 PM features2d d----- 3/7/2025 7:08 PM flann d----- 3/7/2025 7:08 PM highgui d----- 3/7/2025 7:08 PM imgcodecs d----- 3/7/2025 7:08 PM imgproc d----- 3/7/2025 7:08 PM ml d----- 3/7/2025 7:08 PM objdetect d----- 3/7/2025 7:08 PM photo d----- 3/7/2025 7:08 PM stitching d----- 3/7/2025 7:08 PM video d----- 3/7/2025 7:08 PM videoio -a---- 3/7/2025 5:44 PM 229234 calib3d.hpp -a---- 3/7/2025 5:44 PM 160674 core.hpp -a---- 3/7/2025 7:03 PM 3355 cvconfig.h -a---- 3/7/2025 5:41 PM 3425 dnn.hpp -a---- 3/7/2025 5:41 PM 74648 features2d.hpp -a---- 3/7/2025 5:41 PM 28705 flann.hpp -a---- 3/7/2025 5:44 PM 38359 highgui.hpp -a---- 3/7/2025 5:44 PM 28977 imgcodecs.hpp -a---- 3/7/2025 5:44 PM 262300 imgproc.hpp -a---- 3/7/2025 5:41 PM 94590 ml.hpp -a---- 3/7/2025 5:41 PM 43966 objdetect.hpp -a---- 3/7/2025 5:41 PM 3558 opencv.hpp -a---- 3/7/2025 7:03 PM 782 opencv_modules.hpp -a---- 3/7/2025 5:44 PM 38991 photo.hpp -a---- 3/7/2025 5:44 PM 15077 stitching.hpp -a---- 3/7/2025 5:41 PM 2574 video.hpp -a---- 3/7/2025 5:44 PM 70639 videoio.hpp -a---- 3/7/2025 5:41 PM 2383 world.hpp