7

在 Visual Studio 2003 中,如果我链接的库没有相应的 PDB 文件,我会收到警告:

foo.lib(bar.obj):警告 LNK4099:找不到 PDB 'other.pdb';链接对象好像没有调试信息

如果 PDB 位于其原始构建位置,VS 可以找到它们,以及它们是否位于当前构建目录中,但似乎就是这样。有没有办法可以告诉 Visual Studio 它应该在哪里寻找 PDB?我有一个模糊的概念,即符号服务器可能会工作,但这似乎是很多开销;我只是在寻找类似link.exe /pdbpath c:\pdbs_are_right_here添加搜索路径的东西,比如/I添加包含路径。或者,除了当前目录和 PDB 写入的原始绝对路径之外,它还搜索其他路径吗?

4

1 回答 1

0

我相信相应 pdb 的路径嵌入在库本身中,您可以在库的构建开关处将其更改为 c:\pdbs_are_right_here(假设它们确实是您的,而不是第 3 方)。

对于 DLL,这意味着项目属性\链接器\调试\生成程序数据库文件。

对于静态库,默认名称在 VS2013 中是统一的('vc120.pdb'),但我认为这在 VS2015 中发生了变化,并且不知道 VS2003。无论如何,如果您在 VS2013\2012\2010 中工作,您也必须明确覆盖该名称。

于 2015-05-30T19:10:08.487 回答