В настоящее время мы используем один инструмент командной строки для создания нашего продукта как для Windows, так и для Linux.Как объединить несколько файлов PDB?
Si far его работы красиво, что позволяет нам строить из источника и с более точной зависимостью, чем позволяла любая из наших предыдущих систем сборки. Это покупает нам большие возможности по наращиванию и параллельной сборке.
Для описания в скором времени процесс сборки, мы получаем обычное:
.cpp -- cl.exe --> .obj and .pdb
multiple .obj and .pdb -- cl.exe --> single .dll .lib .pdb
multiple .obj and .pdb -- cl.exe --> single .exe .pdb
MSVC C/C++ компилятор поддерживает его должным образом.
В последнее время возникла необходимость в создании нескольких статических библиотек. Из того, что мы собрались, чтобы процесс создания статической библиотеки является:
multiple .cpp -- cl.exe --> multiple .obj and a single .pdb
multiple .obj -- lib.exe --> a single .lib
Сингл .pdb означает, что cl.exe
должен быть выполнен только один раз для всех источников .cpp. Это единственное выполнение означает, что мы не можем распараллелить сборку для этой статической библиотеки. Это действительно неудачно.
Мы исследовали немного дальше и в соответствии с документацией (и доступные опции командной строки):
cl.exe
не знает, как строить статические библиотекиlib.exe
не знает, как строить .pdb файлы
Кто-нибудь знает способ слияния нескольких файлов PDB? Неужели мы обречены на медленную сборку для статических библиотек? Как инструменты, подобные Incredibuild, работают над этой проблемой?
Вы всегда можете поместить свой код на твердотельный накопитель. Сборка будет молниеносно. –
Я нахожусь на твердотельном диске в своем учебнике. Это помогает, но привязка привязана к IO, компиляция связана с ЦП. –