Получение только необходимых заголовков из 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, которые вы использовали.