找回密码
 立即注册
首页 业界区 安全 Win10系统下OpenCV静态库的编译流程

Win10系统下OpenCV静态库的编译流程

丁若云 2025-6-1 21:14:20
一、前言

QT项目需要使用到OpenCV作为图像处理,需要导入静态库,这样可以避免最后导出的exe文件放到其他没有OpenCV环境的电脑当中出现无法使用的情况。记录一下自己编译整个OpenCV的流程。
二、步骤

1、前置条件


  • Windows 操作系统
  • Visual Studio 2022 (含C++开发工具) y
  • 由于我的QT项目是使用MSVC_2022编译的,所以OpenCV所需的编译器也需要保持一致。
  • CMake 3.16+
  • Git (用于克隆源码)
2、目录结构
  1. D:\DeskTop\QT_Program\           # 主工作目录
  2. ├── opencv\                      # OpenCV源码目录
  3. ├── opencv_build\                # 构建目录
  4. └── opencv_static\               # 静态库安装目录
复制代码
3、完整编译流程

3.1 获取OpenCV源码

通过git获取源码仓库,然后切换到需要的版本(这里以4.10.0为例子)
  1. cd D:\DeskTop\QT_Program
  2. git clone https://github.com/opencv/opencv.git
  3. cd opencv
  4. git checkout 4.10.0
复制代码
3.2 创建构建目录
  1. # 创建构建目录
  2. mkdir D:\DeskTop\QT_Program\opencv_build
  3. mkdir D:\DeskTop\QT_Program\opencv_static
复制代码
3.3 配置CMake项目

进入构建目录
  1. cd D:\DeskTop\QT_Program\opencv_build
复制代码
使用CMake配置OpenCV静态库 (PowerShell命令)
  1. cmake -G "Visual Studio 17 2022" -A x64 `
  2.     -DCMAKE_INSTALL_PREFIX=D:/DeskTop/QT_Program/opencv_static `
  3.     -DBUILD_SHARED_LIBS=OFF `
  4.     -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded `
  5.     -DWITH_OPENCL=OFF `
  6.     -DWITH_CUDA=OFF `
  7.     -DWITH_IPP=OFF `
  8.     -DBUILD_TESTS=OFF `
  9.     -DBUILD_PERF_TESTS=OFF `
  10.     -DBUILD_EXAMPLES=OFF `
  11.     -DBUILD_DOCS=OFF `
  12.     -DBUILD_JAVA=OFF `
  13.     -DBUILD_opencv_apps=OFF `
  14.     -DBUILD_opencv_python2=OFF `
  15.     -DBUILD_opencv_python3=OFF `
  16.     -DBUILD_opencv_world=ON `
  17.     -DWITH_FFMPEG=OFF `
  18.     -DWITH_GTK=OFF `
  19.     -DWITH_MSMF=OFF `
  20.     -DWITH_QUIRC=OFF `
  21.     -DWITH_TIFF=OFF `
  22.     -DBUILD_JPEG=ON `
  23.     -DBUILD_PNG=ON `
  24.     -DBUILD_WEBP=OFF `
  25.     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版本
  1. cmake --build . --config Release --parallel 8
复制代码
安装到指定目录
  1. cmake --install . --config Release
复制代码
3.5 验证安装结果

检查静态库文件
  1. dir D:\DeskTop\QT_Program\opencv_static\x64\vc17\staticlib\*.lib
复制代码
检查头文件
  1. dir D:\DeskTop\QT_Program\opencv_static\include\opencv2
复制代码
3.6预期结果:
  1. PS D:\DeskTop\QT_Program\opencv_build> dir D:\DeskTop\QT_Program\opencv_static\x64\vc17\staticlib\*.lib
  2.     目录: D:\DeskTop\QT_Program\opencv_static\x64\vc17\staticlib
  3. Mode                 LastWriteTime         Length Name
  4. ----                 -------------         ------ ----
  5. -a----          3/7/2025   7:04 PM       15118518 IlmImf.lib
  6. -a----          3/7/2025   7:04 PM         209632 ittnotify.lib
  7. -a----          3/7/2025   7:04 PM        1207842 libjpeg-turbo.lib
  8. -a----          3/7/2025   7:04 PM         877228 libopenjp2.lib
  9. -a----          3/7/2025   7:04 PM         668674 libpng.lib
  10. -a----          3/7/2025   7:04 PM       12700048 libprotobuf.lib
  11. -a----          3/7/2025   7:04 PM        1556710 libwebp.lib
  12. -a----          3/7/2025   7:07 PM      155537580 opencv_world4100.lib
  13. -a----          3/7/2025   7:04 PM         190618 zlib.lib
  14. PS D:\DeskTop\QT_Program\opencv_build> dir D:\DeskTop\QT_Program\opencv_static\include\opencv2
  15.     目录: D:\DeskTop\QT_Program\opencv_static\include\opencv2
  16. Mode                 LastWriteTime         Length Name
  17. ----                 -------------         ------ ----
  18. d-----          3/7/2025   7:08 PM                calib3d
  19. d-----          3/7/2025   7:08 PM                core
  20. d-----          3/7/2025   7:08 PM                dnn
  21. d-----          3/7/2025   7:08 PM                features2d
  22. d-----          3/7/2025   7:08 PM                flann
  23. d-----          3/7/2025   7:08 PM                highgui
  24. d-----          3/7/2025   7:08 PM                imgcodecs
  25. d-----          3/7/2025   7:08 PM                imgproc
  26. d-----          3/7/2025   7:08 PM                ml
  27. d-----          3/7/2025   7:08 PM                objdetect
  28. d-----          3/7/2025   7:08 PM                photo
  29. d-----          3/7/2025   7:08 PM                stitching
  30. d-----          3/7/2025   7:08 PM                video
  31. d-----          3/7/2025   7:08 PM                videoio
  32. -a----          3/7/2025   5:44 PM         229234 calib3d.hpp
  33. -a----          3/7/2025   5:44 PM         160674 core.hpp
  34. -a----          3/7/2025   7:03 PM           3355 cvconfig.h
  35. -a----          3/7/2025   5:41 PM           3425 dnn.hpp
  36. -a----          3/7/2025   5:41 PM          74648 features2d.hpp
  37. -a----          3/7/2025   5:41 PM          28705 flann.hpp
  38. -a----          3/7/2025   5:44 PM          38359 highgui.hpp
  39. -a----          3/7/2025   5:44 PM          28977 imgcodecs.hpp
  40. -a----          3/7/2025   5:44 PM         262300 imgproc.hpp
  41. -a----          3/7/2025   5:41 PM          94590 ml.hpp
  42. -a----          3/7/2025   5:41 PM          43966 objdetect.hpp
  43. -a----          3/7/2025   5:41 PM           3558 opencv.hpp
  44. -a----          3/7/2025   7:03 PM            782 opencv_modules.hpp
  45. -a----          3/7/2025   5:44 PM          38991 photo.hpp
  46. -a----          3/7/2025   5:44 PM          15077 stitching.hpp
  47. -a----          3/7/2025   5:41 PM           2574 video.hpp
  48. -a----          3/7/2025   5:44 PM          70639 videoio.hpp
  49. -a----          3/7/2025   5:41 PM           2383 world.hpp
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册