opencv编译进入源码-走进opencv库函数---vs2008+opencv2.4.9

前言

我学习opencv有一段时间了。 在调试自己的程序或者调试别人的例子时,总是会遇到各种异常。 这些异常通常是由于调用opencv库函数引起的。 造成该异常的原因有很多,通常是参数传递不当引起的。 因为我是opencv菜鸟,所以对很多库函数还是了解得很透彻。 因此,如果你还能调试程序,单步进入opencv库函数的源代码进行调试,一方面可以知道参数不合理导致的程序异常; 另一方面opencv编译进入源码,你也可以有机会从源码中学习一些好的习惯和想法,可以从本质上了解图像处理和机器学习算法的实现过程和原理。 经过向前辈请教,在网上搜索,经过多次尝试,现在终于可以步入opencv的库函数源码了。

使用环境

opencv 2.4.9可以通过这个链接到我的百度网盘下载

vs2008

cmake3.4.0可以通过这个链接到我的百度网盘下载

具体步骤如下:

从源代码重新编译生产库

直接解压opencv2.4.9会生成两个文件夹:build和sources。 build中保存的是vs2010以上开发环境的预编译库。 但根据网上资料,使用build中预编译的dll和lib时,程序可以运行,但无法单步进入源代码进行调试。 原因是build文件夹中的dll和lib不包含pdb信息。 (我不知道为什么,因为我使用的是vs2008,所以无法使用build中的预编译库进行源代码调试)。 因此,我个人建议,无论使用的vs版本是vs2010以上还是以下,为了单步进入源码进行调试,最好重新编译源码。

配置两次,生成一次

使用opencv2.4.9编译源码时,需要使用cmake配置两次,生成一次。 关于使用cmake生成opencv解决方案的具体过程网上有很多介绍。 可以在网上搜索关键字“opencv cmake”和“使用cmake编译opencv”。

编译整个解决方案

使用cmake生成vs解决方案后,在输出目录下生成如图所示的解决方案OpenCV。 在vs2008中打开这个解决方案,编译整个解决方案。 编辑过程大约需要 10 到 20 分钟。 一般来说,解决方案中的所有项目都会顺利通过。

关键步骤:编译INSTALL

整个解决方案编译完成后,虽然bin目录下生成的库不包含编译信息(可能是我的设置有问题),但后来在博文中看到需要编译目录下的INSTALL项目解决方案并尝试编译它。 过了一会儿,编译INSTALL项目后,生成了install文件夹,如下图

install文件夹中的目录结构如下图所示opencv编译进入源码,与opencv的预编译库的目录结构(即opencv的build文件夹中的目录结构)非常相似

在vs2008的安装文件夹中配置库

在vs2008中配置opencv中的库(install文件夹下的库)分为两步:

1.菜单栏,工具--->选项--->项目和解决方案,vc++目录。 单独配置“包含文件”。 可以尝试配置三个路径(网上有的博客建议只需要配置一个,我没有尝试看看是否可行,大家可以尝试一下):install所在路径installinclude ; 安装所在的路径。 installincludeopencv ;安装路径installincludeopencv2

如下图所示

将“库文件”配置为install所在路径installx86vc9lib,如下图

2.在项目属性中配置依赖

首先创建一个使用opencv库开发的示例程序,然后打开项目的属性页

添加依赖项。 调试和发布所使用的具体依赖项是不同的。 具体设置可以网上搜索“opencv vs2008配置”、“配置opencv”等关键词。

设置环境变量

将install所在路径installx86vc9bin添加到系统的环境变量path中。 具体操作可以网上搜索“opencv配置”。 本文还将介绍如何设置环境变量。 配置环境变量后,需要重启笔记本,环境变量才能生效。

通过以上操作,在调试使用opencv库的程序时,可以单步进入opencv库函数进行调试。

总结

经过这三天的折腾,发现问题的真正原因在于编译Opencv解决方案中的INSTALL项目。 配置vs2008的vc++目录下的“include文件”、“库文件”、环境变量时,需要指定的是INSTALL生成的install文件夹中的include文件夹、lib文件夹、bin文件夹的路径项目,不是下图所示的include文件夹的路径,以及bin文件夹中debug中的库。 虽然引用include和bin可以使程序正常运行,但是库函数却无法一步调试。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 opencv编译进入源码-走进opencv库函数---vs2008+opencv2.4.9 https://www.wkzy.net/game/184489.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务