Sam*_*rsa 13 c++ visual-studio-2008 pdb-files
我对编译器和链接器PDB文件之间的区别(即Visual Studio,Project Properties > C/C++ > Output Files > Program Database File Name vs Project Properties > Linker > Debugging)感到困惑.我试图在线找到答案,到目前为止我知道(可能是错误的)PDB编译器的文件是为obj文件生成的,而PDB链接器的文件是为二进制文件(exe或dll)生成的,并且是用于调试.
如果不是这样,请解释其中的差异.无论哪种方式,我在创建一个DLL地方时该怎么做我可以选择PDB编译器的输出文件以及链接器以及在创建LIB文件时要做什么,其中只有编译器生成PDB文件,因为没有连接.
背景:库/ dll由几个项目使用,然后需要
PDB文件进行调试.在lib文件的情况下,没有歧义,因为只PDB生成了一个文件.但是,在一个情况下DLL,我是否需要两个PDB文件来正确调试或只需要链接器生成的文件?
Mic*_*urr 12
老实说,我不知道编译步骤生成的.pdb文件究竟用于什么 - 我假设它是链接器将最终的.pdb文件拉入最终的.pdb文件的一些中间信息.
但是,最重要的是,出于调试目的,您只需要链接器生成的.pdb文件.
更新:从http://blogs.msdn.com/b/yash/archive/2007/10/12/pdb-files-what-are-they-and-how-to-generate-them进行了一些挖掘. aspx:
什么是两种类型的.PDB文件?
==============================
有两种类型的PDB文件.一个由编译器生成,名为VCx0.PDB(例如vc80.pdb),另一个名为.PDB.
VCx0.PDB文件由编译器生成,它与.OBJ文件相关.它仅包含类型信息.
.PDB文件由链接器生成,它与目标可执行文件或DLL相关.该文件包含完整的调试信息.当我们调试时,我们需要这个'.pdb'文件来对齐符号.目标文件和PDB的时间戳应该匹配.