Получение только необходимых заголовков из boost

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

спасибо

3 ответов


на для этого:

имя

   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.


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


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

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

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

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

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