VS调试第三方库的方法如OpenCV

本文介绍了在Visual Studio中调试第三方库(如OpenCV)的方法。重点讲述了如何解决因PDB文件导致的无法调试问题,并提供了将DLL和PDB文件放置在正确位置的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VS调试第三方库的方法如OpenCV

前言

VS在调试程序的时候依赖pdb文件(其中存放了源文件信息)
但是程序使用install中的.dll时总是找不到其pdb文件虽然它们放在一个文件夹下。当调试引用了第三方库的程序时,会有
“test_Debug.exe”(Win32): 已加载“D:\build\OpenCV\install\bin\opencv_highgui2410d.dll”。无法查找或打开 PDB 文件
的问题,此时我们是不能调试dll中的源码。

解决方案

我发现程序连接的dll是我放在环境变量中的dll,它总是报无法查找或打开PDB文件的错误,于是,我将编译时的bin文件下的dll和pdb文件考到了我的exe目录下,即不使用环境变量中的dll了。此时就可以成功加载了。
“Win32Project1.exe”(Win32): 已加载“D:\build\OpenCV\x64\Debug\opencv_highgui2410d.dll”。已加载符号。

跟进

我又试着将编译bin下的dll和exp更新到install中,发现那些引用install中的dll的程序也可调试了,也可以找到PDB了,所以我猜测,其实问题出我多次编译了库,使得我在install中的版本不是最新的版本(最新的dll和pdb)造成了install中的pdb与源文件“失联”。

更进一步,Linux下不存在PDB文件,即其源码应该在库文件中(当然是debug版),我猜这与Linux的GNU的思想相符,即开源的思想,但window下会考虑源码泄露的问题,只要不给别人PDB文件,调试debug版的库依然是不能得到源码的。即使我们平时得到的都是release版。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值