在MS Visual Studio 10中使用调试信息构建静态库(.LIB
)时,
.PDB
的名称始终为vc100.pdb
。(与构建.DLL
相对,调试信息为[MyProjectName].pdb
) < / p>
这对我来说是个问题,因为我正在尝试将几个不同的库(及其调试符号)复制到"PublishedLibraries"
的目录中,但所有vc100.pdb
名称显然都会发生冲突。
我确信我可以更改每个.PDB
的名称以匹配其.LIB
,但对我来说,更大的问题是为什么 Visual Studio认为{{1是一个比vc100.pdb
更好的名称?如果所有名称冲突,我们如何使用多个库中的Debug Info?
答案 0 :(得分:20)
如果你使用/ Z7(而不是/ ZI或/ Zi)[在UI C / C ++中 - &gt;一般 - &gt;调试信息格式]然后调试信息嵌入在lib文件本身,而不是单独的pdb,这意味着你不必担心相同的名称。
当你构建最终的可执行文件(.exe或.dll)时,你将从所有的小嵌入式pdb中获得一个合并的pdb。
请参阅this question了解详情
我总是在我的团队中管理这个问题的方式,因为你不能在构建过程中丢失调试信息。它有点膨胀libs [但总共没有lib和pdb],但是你可能不会发布libs,你不应该担心这个。