【opencv源码解析0.2】如何编译opencv库源码

【opencv源码解析0.2】如何编译opencv库源码

上篇文章我们介绍了如何配置opencv环境,搞清了opencv的包含目录include、静态库链接以及动态库链接的作用。

但环境配置只能让我们使用opencv库,如果要阅读opencv源码,我们就需要编译opencv的源码来生成VS工程,这样才可以完成各个模块、各个文件之间的跳转与阅读。

本教程的环境为

  • Visual Studio 2019

  • CMake 3.22.3

  • opencv 4.6.0

  • windows 10

首先进入我们上篇文章中安装的opencv文件夹:

19

sources就是opencv的源码,是使用cmake进行工程管理的,因此我们使用cmake来重新编译该源码。

安装cmake不再赘述,大家自行百度。

打开cmake-gui:

20

  1. 此处为我们待编译的源码路径,即source文件夹

  2. 构建、编译该源码的build目录路径,我们可以在source文件夹同级路径下建一个source_build文件夹(其实一般都是建build文件夹,但我们source目录已经有一个官方提供build文件夹了)

  3. cmake的构建选项,这些选项都是由cmake代码中所写的配置选项变量,后面会介绍

  4. configure配置项目:该操作主要是针对cmake,就是使3中的构建选项生效

  5. 编译项目:根据3的构建选项,来执行cmake编译source路径源码,并将编译生成的工程存放到source_build路径

1)配置路径

21

按照上文配置两个路径,然后点击configure来配置项目:

22

第一次configure会产生一个弹窗,我们选择生成基于x64平台的VS2019工程,点击Finish。经过大概40s的配置过程之后,cmake-gui工具会罗列出opencv库的cmake文件中存在的、提供给用户可配置的一些选项(其实选项很多):

23

可以看到出现了很多红色的选项,看到红色不要慌,红色不代表配置出错,红色仅代表这些选项是第一次出现在cmake-gui这个界面,用来提示用户注意的,输出文本框底部的Configuring done可以标明我们的配置过程已经完成。

2)opencv的配置选项option

下面我们插讲一下上面我们配置完成后出现的这些配置选项option,在官方的文档中给出了详细的介绍:

https://docs.opencv.org/4.6.0/db/d05/tutorial_config_reference.html

所有选项的功能都可以通过名字在官方文档中找到对应的介绍。

在这儿我们仅介绍几个常用的构建选项:

  • BUILD_EXAMPLES:显而易见,是否构建opencv的examples例程

  • BUILD_opencv_world:opencv有很多组件,例如core、dnn、imgproc等等,默认情况下该选项为false,此时,我们编译opencv源码生成动态库,会生成各个组件单个的动态库,我们勾选该选项后,则会仅生成opencv_world460.dll这一个动态库

  • CMAKE_BUILD_TYPE:构建的默认类型,可以选择Release或Debug类型

3)编译生成工程

了解了options后,我们继续构建我们的opencv源码,首先我们勾选BUILD_opencv_world这个选项,然后点击configure按钮:

我们说过该按钮是让我们的选项生效,因为我们修改了选项内容,因此需要重新configure一次。

然后点击Generate来编译链接我们的源码,生成VS2019的.sln工程文件:

25

可以看到Generating done字样,表示我们编译成功了,上方的options也恢复了正常颜色。

进入我们的source_build目录:

24

可以找到我们的OpenCV.sln工程,直接双击打开,就是我们的opencv源码工程了:

26

直接编译生成,就可以得到opencv_world460.dll了:

39

40

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码