Я пытаюсь создать решение cmake, используя Incredibuild 5.0 для Windows, и получить ошибки управления PDB в нескольких проектах:
Fatal error:
Failed to notify object at 0x06C150A0, class is TWaitObjectThread_Notify
PDB Management: Internal Error: Cannot apply file changes while file is being closed: xxxxx.pdb
Я думал, что это может быть порядок файлов .cpp в списке cmakefilelist, но это не имеет никакого значения.
Есть несколько вещей, которые могут вызвать это. Наиболее популярным является то, что у вас есть два разных проекта, которые пытаются получить доступ к одному и тому же файлу PDB. Причина, по которой вы видите это только с IncrediBuild, заключается в том, что с IncrediBuild многие ваши проекты выполняются параллельно (в автономном режиме проекты выполняются последовательно). Определите проект, который потерпел неудачу, и проверьте, есть ли у вас другой проект, который выполняется параллельно этому, и направьте его PDB в другой файл PDB. Если это не так, дайте мне знать, есть и другие, менее распространенные сценарии.
(Отказ от ответственности: я сотрудник IncrediBuild)
Конечно, это была проблема с нашей системой сборки, которая пыталась записать 32- и 64-битные версии одной и той же библиотеки в одно и то же имя файла. Сборка поочередно скрывала ошибку, но параллельные сборки выдвигали на первый план проблему.