@DanielEarwicker: 40-50 минут для одной конфигурации x (32,64 бит) x (отладка, выпуск). И это уже ~ 400 проектов.

я есть решение для многих проектов Visual C ++, использующих PCH, но в некоторых из них включены определенные переключатели компилятора для конкретных нужд проекта.

Большинство этих проектов используют один и тот же набор заголовков в соответствующем stdafx.h (STL, boost и т. Д.). Мне интересно, возможно ли разделить PCH между проектами, чтобы вместо компиляции каждого PCH для проекта у меня мог быть один общий PCH, который большинство проектов в решении могли бы просто использовать.

Кажется возможным указать местоположение PCH как общее местоположение в настройках проекта, поэтому у меня есть догадка, это может сработать. Я также предполагаю, что все исходные файлы во всех проектах, использующих общий PCH, должны иметь одинаковые настройки компилятора, иначе компилятор будет жаловаться на несоответствия между PCH и компилируемым исходным файлом.

Кто-нибудь пробовал это? Это работает?

Смежный вопрос: должен ли такой осколочный PCH быть чрезмерно инклюзивным или это повредит общему времени сборки? Например, общий PCH может включать много широко используемых заголовков STL, но для некоторых проектов может потребоваться только<string> а также<vector>, Нужно ли возвращать время, сэкономленное с помощью общего PCH, на более позднем этапе процесса сборки, когда оптимизатору придется отбрасывать все неиспользуемые материалы, перетаскиваемые в проект PCH?

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

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