2

根据http://msdn.microsoft.com/en-us/library/yd4f8bd1.aspx,一个项目有 2 个 .pdb 文件。

project.pdb 我用来允许稍后加载小型转储,但是 vcx0.pdb 到底是用来做什么的?如果它丢失了,那不是问题,我不需要为任何东西存储它。

我正在尝试在不同的项目之间共享一个 PCH,而这个文件是唯一引起问题的东西。如果我将使用 PCH 创建的 vcx0.pdb 复制到所有项目,这些项目将使用此文件作为基础并向其中添加自己的符号。如果不给这些项目这个 .pdb 文件,它们就会失败。

我注意到了几件事:

  • 报告丢失 vcx0.pdb 的警告 LNK4099 似乎并不重要。
  • 如果我使用 /Fd 将多个项目指向同一个文件,并禁用并行构建以使其正常工作,则每个项目都会使用自己的符号不断增加
4

2 回答 2

5

VCx0.PDB 由编译器生成并具有类型信息。它是链接器的输入。

链接器输出 $(TargetName).PDB

于 2010-11-24T11:03:24.903 回答
0

不支持您正在做的事情,我会回到每个项目的 PCH 文件和 PDB 文件。您可能会花费更多的时间来思考为什么这不起作用而不是节省的时间。

更具体的反对意见 - 如果您有多核/多 CPU 硬件,Visual Studio 2008 旨在并行构建不依赖于彼此的项目。通过引入这样的依赖项,您可以防止这种情况发生(这会抵消它带来的任何加速),或者在两个项目尝试访问相同的文件以同时写入时彻底中断构建。

于 2010-11-24T12:12:15.420 回答