您的位置:首页 > 运维架构

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

2018-04-01 16:46 961 查看

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版。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: