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版。
相关文章推荐
- NUnit的测试方法与VS中启用它来调试
- opencv2.3.1源码调试方法
- opencv+vs调试符号
- 使用vs调试unity脚本的方法
- VS 不能调试 解决方法
- vs 2005 express 版本 关于debug 调试时显示 无法找到msvcr80d.dll的错误 解决方法
- vs增加第三方依赖库的方法总结
- vs打包部署自定义操作进入调试的方法
- OPENCV-2.4.11+VS2015最直白有效配制方法 以及 VS配置库的通用方法
- 利用VS 2005调试 JAVASCRIPT的两种方法
- 未加载mfc120ud.i386.pdb:VS2013调试MFC程序解决方法
- vs2015启动网站调试提示 HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容。 解决方法
- VS 2003使用第三方程序启动不能Debug的解决方法
- OpenCV2.4.13+VS2013配置方法
- VS调试ASP.NET MVC程序出现"未连接到互联网"的解决方法
- 【OpenCV学习】在不同版本的VS下的配置方法
- vsCode 添加浏览器调试和js调试的方法
- 关于vs启动调试报错:CS0016: 未能写入输出文件“xxxxxxxx”--“目录名称无效。”解决方法
- opencv2.4.9 + vs2013 之 blobtrack 调试
- vs调试方法