Visual Studio 使用 vc90.pdb 做什么?

发布于 2024-10-03 19:09:31 字数 514 浏览 11 评论 0原文

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

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

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

我注意到以下几点:

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

According to http://msdn.microsoft.com/en-us/library/yd4f8bd1.aspx there's 2 .pdb files for a project.

project.pdb I use to allow loading minidumps later on, but what exactly is vcx0.pdb used for? If it's missing, it's not a problem, and I don't need to store it for anything.

I'm trying to share a PCH amongst different projects and this file is the only thing causing problems. If I copy the vcx0.pdb created with the PCH to all projects, those projects use this file as a base and add their own symbols to it. If don't give those projects this .pdb file, they fail.

A couple of things I noticed:

  • Warning LNK4099 reporting a missing vcx0.pdb doesn't seem to be anything critical.
  • If I point multiple projects to the same file using /Fd, and disable parallel building to make that work, every project keeps incrementing with their own symbols

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伪装你 2024-10-10 19:09:31

VCx0.PDB由编译器生成,具有类型信息。它被输入到链接器。

链接器输出 $(TargetName).PDB

VCx0.PDB is generated by the compiler and has type information. It is input to the linker.

The linker outputs $(TargetName).PDB

阪姬 2024-10-10 19:09:31

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

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

What you are doing is not supported, I would go back to per-project PCH files and PDB files. You will likely spend more time puzzling over why this does not work than it would save.

A more concrete objection - Visual Studio 2008 is designed to parallelize building of projects that don't depend on each other, if you have multicore/multi-CPU hardware. By introducing a dependency like this you will either prevent this from happening (which counteracts any speedup it brings), or flat out break the build, when two projects try to access the same files for write concurrently.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文