LNK1201 Visual C ++ 2010 Großes Projekt kann PDB nicht generieren

Wir sind die Punkte durchgegangen, die auf aufgelistet sindMSDN WRT auf diesen Fehler (außer # 5). Drei verschiedene Personen auf verschiedenen Maschinen haben das gleiche Problem. Der PDB wird erstellt, schlägt jedoch irgendwo in der Mitte fehl.

Einzelheiten:

67 statische Bibliotheken4,27 GB statische Bibliotheken1048575 Bytes - Größe des PDB, wenn der Linker ausfälltDie letzten paar Megabyte des PDB sind null (Nullen)Release Build ist erfolgreich und erzeugt ein PDB (wir haben es eingeschaltet, ohne Debugging-Informationen in der Exe)Release Build PDB ist knapp 1 GB.

Wir haben Virenscanner deaktiviert. Beobachtete mit procmon.exe und sah keine Verdachtsinteraktionen mit dem PDB, als der Linker ausfiel.

Verwandte Frage schlägt eine Beschränkung von ~ 1 GB für PDBs vor - jemand / eine Möglichkeit, dies zu bestätigen?

UPDATE & LÖSUNG:

@Barry und das Chrom-Team haben die Lösung gefunden.Hier ist der Patch für das Chromium-Build-System, der die Auflösung implementiert.

Einzelheiten
Der PDB verwendet intern ein virtuelles Dateisystem:MSF. Wenn der Linker die PDB-Datei erstellt, wird standardmäßig eine (anscheinend nicht konfigurierbare) Seitengröße von 2 KB verwendet. Anscheinend & zum Glück, wenn der Compiler seine PDB erstellt, wird die Seitengröße auf 4 kB voreingestellt. Diese Compiler-PDB kann gehisst und als Basis für die Linker-PDB verwendet werden.

Bessere Lösung Als einPre-Link Event Auf dem Projekt, das Ihre Exe- oder DLL-Datei verknüpft, können wir den Compiler so einstellen, dass er unsere erforderliche anfängliche PDB generiert:

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

Ursprüngliche Lösung
Erstellen Sie ein statisches C ++ - Bibliotheksprojekt mit einer leeren cpp-Datei, und konfigurieren Sie den Dateinamen der 'Porgram-Datenbank' so, dass er etwas anderes als den Standard ausgibt. Verwenden Sie einige Projekterstellungsereignisse (ich habe 'Pre-Link Event' verwendet), um die zuvor erstellte PDB an die Stelle zu kopieren, an der der Linker dies erwartet (siehe Linker-> Generate Program Database File), um die PDB zu erstellen. Glücklicherweise übernimmt der Linker das in PDB kopierte und verwendet seine 4 kB Seitengröße. Dies wird einige Zeit in Anspruch nehmen und etwas Platz für bis zu 2 GB PDB.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage