What does Visual Studio use vc90.pdb for?
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 kee开发者_StackOverflow社区ps incrementing with their own symbols
VCx0.PDB is generated by the compiler and has type information. It is input to the linker.
The linker outputs $(TargetName).PDB
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.
精彩评论