На самом деле вы ничего не можете сделать, кроме обычных уловок:
- минимизировать зависимости: извлекайте только те заголовки Boost, которые вам действительно нужны, и используйте как можно более конкретные заголовки (многие библиотеки имеютодин «главный» заголовок, такой как
boost/thread.hpp
, но также подкаталог с конкретными заголовками, такими как boost/thread/shared_mutex.hpp
), - , где это возможно, полагаться на предварительные объявления вместо включения всего заголовка,
- если возможно, включайте заголовок только в
.cpp
файл.Если вы включаете его в заголовок, он должен компилироваться каждый раз, когда компилируется блок перевода, который включает этот заголовок.Как правило, старайтесь свести к минимуму объем кода в заголовках: - все основные компиляторы поддерживают предварительно скомпилированные заголовки.Используйте их, чтобы сократить время компиляции,
- эксперимент с сборками единиц .Это может или не может быть преимуществом в вашем случае.
И последний, но не менее важный вариант - просто не использовать эти конкретные библиотеки Boost.
Я иногда используюнекоторые библиотеки Boost на ранних стадиях, из-за удобства, и если / когда время компиляции становится слишком плохим, я начинаю смотреть, какие библиотеки являются дорогостоящими для компиляции, а какие можно заменить на относительно простой код.Часто, Boost обременен требованием быть настолько общим.Если вам не нужно что-то, что работает на 8-летних компиляторах, или которое не должно работать с очень многими различными типами, тогда вы сможете написать простую замену, которая работает для вас, и почти не тратит времяскомпилировать.