我对编译器和链接器之间的区别感到困惑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
正确调试的文件还是仅由链接器生成的文件?
老实说,我不知道编译步骤生成的 .pdb 文件到底是用来做什么的 - 我假设它是链接器拉入最终 .pdb 文件的一些中间信息。
然而,最重要的是,出于调试目的,您所需要的只是链接器生成的 .pdb 文件。
更新:一点点挖掘从http://blogs.msdn.com/b/yash/archive/2007/10/12/pdb-files-what-are-they-and-how-to-generate-them.aspx 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 应该匹配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)