我开始对编译器和链接器分别生成的“PDB”文件存在什么区别感到困惑了 (即在 Visual Studio 中,“项目属性 > C/C++ > 输出文件 > 程序数据库文件名”与“项目属性 > 链接器 > 调试”)。我尝试在网上寻找答案,并且到目前为止我所知道的是(可能不正确),编译器生成的
如果这不正确,请解释区别。无论哪种情况,在创建
PDB
文件用于obj
文件,而链接器生成的PDB
文件用于二进制文件(exe 或 dll)并用于调试。如果这不正确,请解释区别。无论哪种情况,在创建
DLL
时我该如何选择编译器和链接器的输出PDB
文件,在创建LIB文件时只有编译器生成PDB
文件因为没有进行链接。
背景:库/动态链接库被多个项目使用,然后需要
PDB
文件进行调试。对于lib
文件来说,没有歧义,因为只会生成一个PDB
文件。但是对于DLL
来说,我是否需要两个PDB
文件才能正确调试或者只需要由链接器生成的一个?
lib
文件(即静态库)时,只有编译器才能生成pdb
文件,因为链接器不再需要,这是否意味着现在由编译器生成的pdb
文件是用于调试的文件? - Samaursa.pdb
文件的文件名是什么样的?它们都是VCxx.PDB
吗?还是foo.lib
的那些在foo.pdb
中? - SamBfoo.lib
的那些在foo.pdb
中。 - Samaursa