调试opencv程序,怎么在vs运行下直接调到opencv的源码,终极,cmake后还要有pdb文件链接

好久不更博了,今天来点实际的大雷子

关于在vs中查看opencv的源码,一直是我想实现的,

可是看网上搜怎么看opencv源码,就仅仅一个版本 ,cmake编译源码,然后打开opencv.sln,搜索你要看的函数名称,,或者不打开open.sln,仅仅打开某个功能的.sln,,在modules文件夹下任意模块的中的sln,也可以,这个会快点嘛,,可是可是可是

一般想看源码的情况 大部分都是在自己的opencv程序,debug调试当中,f12进入函数定义,直接想跳入opencv的源码,这才叫真正的看源码吧,

今天在overflow搜了好多,加上自己的尝试,ok了,

1,cmake编译opencv源码,然后打开oepncv.sln,debug,release下都build一遍,这是会出现bin文件,lib文件,以及install文件:
bin文件你会发现有了dll,还有pdb文件,一一对应,lib文件同样也多了exp文件;
而install文件你会发现和一键安装opencv时生成的文件一样, 有lib include bin;
我之前配置文件时时选择install内的lib bin路径, 但是今天看完国外的一些建议后,说 pdb文件是很重要的,它是调试符号文件,包含了源码的路径细节,所以我又重新配置的opencv的各个路径,但是bin下的符号文件怎么添加到vs中呢,,在 工具-》选项-》调试下,常规栏目中 勾选 启用原服务器支持,它下面的也勾选,,然后调试下面的 符号 勾选Microsoft符号服务器。
以上是按stack overflow上的做法,但是程序你生成ok后,debug运行,这是你要看输出窗口,依然还是显示
。。

已加载“D:\\opencv_imgproc249d.dll”。已加载符号。无法查找或打开 PDB 文件。

。。

system2的pbd显示ok, opencv的找不到,,,所以在你单步执行时,遇到opencv自带的函数,F11进入,你仍然进入的是.h头文件,而不是相应的cpp

                                    分割线                                                                              

ok,下面的方向就是彻底能看到调试时源码了,

2、既然vs还是提示看不到opencv的pdb文件,那还是在工具-》选项-》调试-》符号,没有正确配置,

首先我尝试的是在Microsoft符号服务器下右上角有个添加,我输入opencv_calib3d249d.pdb,然后运行,看输出窗口还是提示说 无法查找或打开 PDB 文件,,又发现右上角是文件夹的新建,ok,我把debug的pdb路径输入,D:\opencv2492\opencv\build20170706gai\bin\Debug,,在运行程序加断点,完美,输出窗口 

。。

已加载“D:\opencv2492\opencv\build20170706gai\install\bin\opencv_imgproc249d.dll”。已加载符号。

。。

在opencv自带函数处加断点,F11,哇,cvLoadImage(), 调到opencv的src文件内的d:\opencv249\opencv\sources\modules\highgui\src\loadsave.cpp,,可以看到oepncv自带函数的实现了,点云库PCL想看源码,也一样

但有个不太好,之前常用F12进入函数定义,程序运行不运行都可以调到cpp定义,在这是不行的,必须程序是在运行状态下,debug下,F11单步执行才可以进入opencv源码的cpp


补充:

1,cmake release也生成了pdb文件,那release下也可以应该看到源码的

2,把opencv源码路径也要加上,忘说了,在配置属性 -》vc++目录-》源目录,D:\opencv2492\opencv\sources\modules

3、调试看源码应该不止这一种方式,看overflow,,静态lib??,,待尝试

 

                
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
您好,感谢您的提问。在使用VS2022编译OpenCV,需要进行一些配置。下面是步骤: 1.首先,在VS2022中打开OpenCV源代码文件夹,找到CMakeLists.txt文件,并在文件夹中新建一个名为“build”的文件夹。 2.运行CMake,将源代码的根目录设置为OpenCV源代码文件夹,将目标目录设置为刚刚创建的“build”文件夹,并勾选“Create directory for solution”选项。 3.在CMake的配置选项中选择您要编译的构建类型和目标平台(x86或x64)。您可能需要根据您的需求添加或删除特性。 4.单击“Configure”以生成项目文件,在CMake窗口中检查一下是否出现错误或警告。如果没有错误或警告,则单击“Generate”以生成Visual Studio项目文件。 5.打开Visual Studio(2019或2022),选择“Open Project”或“Open Solution”,然后导航到您刚才生成的项目文件中的“.sln”文件。 6.在打开的项目中,右键单击您要链接OpenCV_features2d库的项目,并选择“Properties”。 7.在属性窗口中,转到“C/C++ -> General -> Additional Include Directories”,然后将OpenCV源代码文件夹中的“include”文件夹路径添加到Include目录中。 8.在同一属性窗口中,转到“Linker -> General -> Additional Library Directories”,并将OpenCV源代码文件夹中的“lib”文件夹路径添加到Library目录中。 9.在“Linker -> Input -> Additional Dependencies”中,将OpenCV_features2d库文件(如“opencv_features2d460.lib”)添加到依赖项中。 10.点击“Apply”按钮后,您就可以开始编译您的项目并使用OpenCV_features2d库了。 希望这些步骤能够帮到您,如果您有其他问题,请随联系我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值