带有Visual Studio 10中的库的PDB文件

abe*_*nky 13 c++ visual-studio-2010 debug-symbols

.LIB在MS Visual Studio 10中使用调试信息构建静态库()时,.PDB始终会命名vc100.pdb.
(而不是构建一个.DLL调试信息的地方[MyProjectName].pdb)

这对我来说是一个问题,因为我正在尝试将几个不同的库(及其调试符号)复制到一个目录中"PublishedLibraries",但所有vc100.pdb名称显然都会发生冲突.

我确信我可以更改每个的名称.PDB以匹配它.LIB,但对我来说更大的问题是为什么 Visual Studio认为vc100.pdb比一个更好的名字projectA.pdb
如果所有名称冲突,我们如何使用多个库中的Debug Info?

Mik*_*ine 20

如果使用/ Z7(而不是/ ZI或/ Zi)[在UI C/C++ - >常规 - >调试信息格式],则调试信息嵌入在lib文件本身,而不是单独的pdb,这意味着你不必担心同一个名字.

当你构建最终的可执行文件(.exe或.dll)时,你将从所有的小嵌入式pdb中获得一个合并的pdb.

有关详细信息,请参阅此问题

它是我一直在我的团队中管理这个问题的方式,因为你不能在构建过程中丢失调试信息.它有点膨胀libs [但总共没有lib和pdb],但是你可能不会发布libs,你不应该担心这个.