LNK1201 Visual C ++ 2010 Duży projekt nie generuje PDB

Przeszliśmy przez punkty wymienione naMSDN WRT do tego błędu (z wyjątkiem # 5). Trzech różnych ludzi na różnych maszynach ma ten sam problem. PDB jest tworzony, ale zawiedzie gdzieś w środku.

Detale:

67 bibliotek statycznych4,27 GB bibliotek statycznych1048575 bajtów - rozmiar PDB, gdy linker zawiedzieOstatnie kilka megabajtów PDB są zerowe (zero)Wydanie kompilacji powiedzie się i wygeneruje PDB (mamy włączone, bez informacji o debugowaniu w exe)Wydanie PDB kompilacji jest nieco poniżej 1 GB.

Wyłączyliśmy skanery antywirusowe. Obserwowałem z procmon.exe i nie widziałem żadnych podejrzeń interakcji z PDB, gdy linker zawiódł.

Powiązane pytanie sugeruje limit ~ 1 GB na PDB - każdy / sposób, aby to potwierdzić?

AKTUALIZACJA I ROZWIĄZANIE:

@Barry i zespół chromu opracowali rozwiązanie.Tutaj jest łatką do systemu budowania Chromium, który implementuje rozdzielczość.

Detale
PDB wewnętrznie korzysta z wirtualnego systemu plików:MSF. Gdy linker tworzy plik PDB, domyślnie przyjmuje (najwyraźniej niekonfigurowalny) rozmiar strony 2 kB. Najwyraźniej i na szczęście, gdy kompilator tworzy swój PDB, domyślnie ustawia rozmiar strony na 4 kB. Ten kompilator PDB może być podnoszony i używany jako baza dla łącznika PDB.

Lepsze rozwiązanie JakZdarzenie przed połączeniem w projekcie łączącym exe lub dll możemy podnieść kompilator, aby wygenerować nasz wymagany początkowy PDB:

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

Oryginalne rozwiązanie
Stwórz statyczny projekt biblioteki C ++ z pustym plikiem cpp, skonfiguruj „Porgram Database File Name”, aby wyświetlić coś innego niż domyślne. Użyj niektórych zdarzeń budowania projektu (użyłem „Pre-Link Event”), aby skopiować poprzednio utworzony PDB do dowolnego miejsca, w którym spodziewasz się linkera (patrz Linker-> Generate Program Database File), aby utworzyć jego PDB. Na szczęście linker przyjmie skopiowany w PDB i użyje rozmiaru strony 4 kB. To kupi trochę czasu i trochę miejsca pozwalającego na 2 GB PDB.

questionAnswers(3)

yourAnswerToTheQuestion