9

我有一个项目,其输出是一个库(.lib)。该项目依赖于第三方库(也是 .lib)。为了避免在我的库之上构建的项目不得不担心这种第三方依赖项,我使用图书管理员将其包含在我的库中(项目属性 > 图书管理员 > 常规 > 附加依赖项)。

但是,当我构建一个链接到我的库的单独的可执行项目时,我会收到一堆警告,如下所示:

MyProject.lib(someThirdPartyObjectFile.obj):警告 LNK4099:在“MyProject.lib(someThirdPartyObjectFile.obj)”或“\vc110.pdb”中未找到 PDB“vc110.pdb”;链接对象好像没有调试信息

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

如何指示 Visual Studio 也将第三方库的 PDB 的内容包含在我的中?

4

2 回答 2

8

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

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

您可以在此处此处找到更多信息。

于 2013-01-11T10:26:36.360 回答
0

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

于 2014-09-29T04:03:40.350 回答