Узнать все зависимые заголовочные файлы для проекта

Допустим есть проект на С++ который использует Boost::Algorithm::String.hpp. String.hpp в свою очередь использует другие заголовки из Boost и тд. Мне необходимо собрать все эти зависимые файлы в отдельную директорию для поставки с исходным кодом, на тот случай если у пользователя нету Boost библиотеки. Какие есть инструменты для таких задач?


Ответы (1 шт):

Автор решения: Chorkov

Для выделения используемых файлов boost, есть утилита bcp https://www.boost.org/doc/libs/1_75_0/tools/bcp/doc/html/index.html .

Альтернативный способ - скомпилировать проект с трассировкой всех включаемых заголовочных файлов. (Ключи -M и -MM для gcc, /showIncludes для msvc.) Однако, для сложных библиотек (например, boost) этот способ может не работать: список включаемых файлов зависит от компилятора (иногда от опций компилятора) при сборке проекта. Поэтому первый способ - предпочтительнее.

→ Ссылка