LNK1201 Visual C ++ 2010 Большой проект не может создать PDB

Мы прошли через пункты, перечисленные наMSDN WRT к этой ошибке (кроме # 5). Три разных человека на разных машинах получают одну и ту же проблему. PDB создан, но выходит из строя где-то посередине.

Подробности:

67 статических библиотек4,27 ГБ статических библиотек1048575 байт - размер PDB при сбое компоновщикаПоследние несколько мегабайт PDB равны нулю (нольс)Выпуск сборки успешен и производит PDB (у нас он включен, без отладочной информации в exe)Релиз сборки PDB составляет чуть менее 1 ГБ.

Мы отключили антивирусные сканеры. Наблюдали с procmon.exe и не видели никаких подозрений во взаимодействии с PDB, когда компоновщик вышел из строя.

Связанный вопрос предлагает ~ 1 ГБ ограничение на PDB 's - кто-нибудь / способ подтвердить это?

ОБНОВИТЬ & РЕШЕНИЕ:

@ Барри и команда Chromium придумали решение.Вот является патчем для системы сборки Chromium, которая реализует разрешение

подробности

PDB использует виртуальную файловую систему внутри:MSF, Когда компоновщик создает файл PDB, по умолчанию используется размер страницы (по-видимому, не конфигурируемый) 2 КБ. По-видимому & к счастью, когда компилятор создает свою PDB, размер страницы по умолчанию равен 4 КБ. Этот компилятор PDB может быть поднят и использован в качестве основы для компоновщика PDB.

Лучшее решение КакСобытие до ссылки в проекте, который связывает ваш exe или dll, мы можем поднять компилятор, чтобы сгенерировать наш требуемый начальный PDB:

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

Оригинальное решение

Создайте проект статической библиотеки C ++ с пустым файлом cpp, настройтеИмя файла базы данных Porgram ' выводить что-то отличное от значения по умолчанию. Используйте некоторые события сборки проекта (я использовал 'Pre-Link Event ') скопировать в ранее созданную PDB туда, куда вас ожидает компоновщик (см. Linker->Generate Program Database File) для создания своей PDB. К счастью, компоновщик примет скопированное в PDB и использует размер страницы 4 КБ. Это позволит выиграть время и пространство, позволяющее разместить до 2 ГБ ПБД.

Ответы на вопрос(3)

Ваш ответ на вопрос