вы можете создать конфигурацию сборки для этой цели (Debug, Release, CheckDependencies).простой способ изменить это - использовать препроцессор для включения / исключения включений на основе текущей конфигурации.используя это, вы можете протестировать и собрать с помощью debug или release (который содержит больший набор включений), а затем собрать все конфигурации перед распространением.
, чтобы уточнить, условное включение MON_LIBRARY_VALIDATE_DEPENDENCIES
не должно использоваться взаголовки или источники библиотеки, только в предварительно скомпилированном заголовке:
// my pch:
#include <file1.hpp>
#include <file2.hpp>
// ...
#if !defined(MON_LIBRARY_VALIDATE_DEPENDENCIES)
#include <boost/stuff.hpp>
// ...
#endif
, тогда вы добавите MON_LIBRARY_VALIDATE_DEPENDENCIES
к списку определений препроцессора в конфигурации CheckDependencies.
относительно охранников: это не должно быть проблемой , если вы используете средства защиты в нормальных условиях - компиляторы используют оптимизацию для обнаружения этих случаев, что означает, что они могут избежать открытия файла во многих случаях, если он был многократно включен и правильно защищен.На самом деле, попытки перехитрить компилятор в этой области могут на самом деле замедлить до обработки.я бы сказал, просто оставьте это как обычно, если ваша библиотека / зависимости не огромны, и у вас действительно есть заметные проблемы.