LNK1201 Visual C ++ 2010 Proyecto grande que falla al generar PDB

Hemos pasado por los puntos enumerados enMSDN WRT a este error (excepto para # 5). Tres personas diferentes en máquinas diferentes tienen el mismo problema. El PDB se crea, pero falla en algún lugar en el medio.

Detalles:

67 bibliotecas estáticas4.27 GB de bibliotecas estáticas1048575 bytes - tamaño de PDB cuando falla el enlazadorLos últimos dos megabytes del PDB son nulos (cero)La versión de lanzamiento es exitosa y produce un PDB (lo tenemos activado, sin información de depuración en el exe)La versión de lanzamiento de PDB es un poco menos de 1 GB.

Hemos deshabilitado los escáneres de virus. Observó con procmon.exe y no vio interacciones sospechosas con el PDB cuando el enlazador falló.

Pregunta relacionada sugiere un límite de ~ 1 GB en el PDB: ¿alguien / forma de confirmarlo?

ACTUALIZACIÓN Y SOLUCIÓN:

@Barry y el equipo de cromo han encontrado la solución.aquí Es el parche al sistema de compilación de Chromium que implementa la resolución.

Detalles
El PDB utiliza un sistema de archivos virtual internamente:MSF. Cuando el enlazador crea el archivo PDB, su valor predeterminado es un tamaño de página de 2 KB (aparentemente no configurable). Aparentemente y afortunadamente, cuando el compilador crea su PDB, el tamaño predeterminado de la página es de 4 kB. Este compilador PDB se puede izar y utilizar como base para el enlazador PDB.

Mejor solucion Como unEvento Pre-Link En el proyecto que está vinculando su exe o dll podemos izar el compilador para generar nuestro PDB inicial requerido:

cl -c "dummy_empty.cpp" /Zi /Fd"$(TargetDir)$(TargetName).pdb" 

Solución original
Cree un proyecto de biblioteca estática de C ++ con un archivo cpp vacío, configure el 'Nombre de archivo de la base de datos de Porgram' para que genere algo distinto al predeterminado. Use algunos eventos de compilación de proyectos (usé 'Evento de enlace previo') para copiar en el PDB creado anteriormente en el lugar donde esté esperando el enlazador (vea Vinculador-> Generar archivo de base de datos del programa) para crear su PDB. Afortunadamente, el enlazador adoptará lo copiado en PDB y utilizará su tamaño de página de 4 kB. Esto le permitirá ganar algo de tiempo y un poco de espacio que permita hasta un PDB de 2GB.

Respuestas a la pregunta(3)

Su respuesta a la pregunta