在Visual Studio中包含带有库管理程序的.pdb文件

时间:2013-01-10 21:58:27

标签: c++ visual-studio debugging libraries

我有一个项目,其输出是一个库(.lib)。该项目依赖于第三方库(也是.lib)。为了避免构建在我的库之上的项目不得不担心这个第三方依赖,我使用了库管理器将它包含在我的中(Project Properties> Librarian> General> Additional Dependencies)。

然而,当我构建一个链接到我的库的单独的可执行项目时,我得到了一堆警告:

  

MyProject.lib(someThirdPartyObjectFile.obj):警告LNK4099:PDB' vc110.pdb'没有找到' MyProject.lib(someThirdPartyObjectFile.obj)'或者在' \ vc110.pdb&#39 ;;链接对象就像没有调试信息一样

这意味着(我假设)我将能够调试属于我的库的任何代码,但不能调试第三方库。

我如何指示Visual Studio还包含我的第三方图书馆PDB的内容?

2 个答案:

答案 0 :(得分:6)

静态库可能已被移动,因此编译器无法从中找到符号。您有几种选择:

  • 将调试格式更改为/Z7,将调试信息嵌入代码中(而/Zi/ZI将其放在单独的文件中)。
  • 更改pdb文件的输出配置(对于VS2005,它是Settings > C++ > Output Files > Program Database File Name,在VS2010中可能类似)。

您可以找到更多信息herehere

答案 1 :(得分:0)

转到属性页面(Alt + F7) 链接器,所有选项,生成调试信息设置为无位置