Получение только необходимых заголовков из буста - PullRequest
9 голосов
/ 15 марта 2011

Мне нужно отправить назначение, но я хочу включить только заголовочные файлы из boost, которые я фактически использовал (я использовал boost :: shared_ptr и boost :: function). Я пытался сделать это вручную, но мне не хватает некоторых заголовочных файлов, и каждый раз, когда я иду, чтобы добавить их, оказывается, что мне не хватает больше. Есть ли быстрый и простой способ узнать, какие именно заголовки мне действительно нужны?

Спасибо

Ответы [ 3 ]

14 голосов
/ 15 марта 2011

Для этого сделана команда bcp:

ИМЯ

   bcp - extract subsets of Boost

СИНТАКСИС

   bcp --list [options] module-list
   bcp [options] module-list output-path
   bcp --report [options] module-list html-file
   bcp --help

ОПИСАНИЕ

   Copies all the files, including dependencies, found in module-list to
   output-path. output-path must be an existing path.

Но вы, вероятно, будете удивлены, увидев, насколько взаимозависимы эти заголовки Boost.

1 голос
/ 15 марта 2011

На самом деле существует другое решение вашей проблемы: препроцессор.

В используемом вами компиляторе должен быть переключатель, позволяющий запускать только препроцессор: -E на gcc и clang.Учитывая это, вы можете предварительно обработать два файла, которые вы включаете, и сохранить результат этого запуска в свой собственный файл заголовка.

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

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

Вы могли бы также сказать своему учителю, что, поскольку он не просит вас предоставить заголовки стандартных библиотек, с которыми вы скомпилировали, он не должен запрашивать используемые вами заголовки повышения.

1 голос
/ 15 марта 2011

Для этого есть инструмент под названием bcp - скопируйте нужные вам части Boost и не более.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...