Как убедиться, что все файлы Boost .dll и .lib включены в сборку?

В Visual Studio 2017 я могу собрать и запустить проект C++, который включает Boost v1.69.0 в качестве двоичных файлов предварительной сборки для VS. Однако теперь я хочу распространять релизную копию моего проекта, которая включает все необходимые файлы .dll и .lib. Как убедиться, что все файлы Boost .dll&.lib включены в окончательный выпуск?
Ниже приведен список библиотек Boost, используемых в моем проекте:

#include <boost/log/core.hpp>
#include <boost/log/trivial.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/sinks/text_file_backend.hpp>
#include <boost/log/utility/setup/file.hpp>
#include <boost/log/utility/setup/common_attributes.hpp>
#include <boost/log/sources/severity_logger.hpp>
#include <boost/log/sources/record_ostream.hpp>

person newprint    schedule 11.07.2019    source источник
comment
Большинство проектов с открытым исходным кодом перечисляют свои зависимости в своей документации, но не распространяют их. Пользователи проекта должны убедиться, что необходимые зависимости установлены. На самом деле может быть сложно распространять двоичные файлы, такие как статические библиотеки, поскольку пользователи вашего проекта могут использовать другой компилятор с другим ABI, чем тот, с которым были созданы библиотеки.   -  person Some programmer dude    schedule 11.07.2019
comment
Я согласен. Вы не должны распространять подмножество boost библиотек, которые использует ваш код. Просто укажите boost в качестве требования к вашему коду, как это делается в большинстве других проектов с открытым исходным кодом.   -  person drescherjm    schedule 11.07.2019
comment
Проект @Someprogrammerdude будет распространяться внутри компании и использоваться на наших рабочих серверах. Он не будет распространяться как проект с открытым исходным кодом.   -  person newprint    schedule 11.07.2019
comment
Это несколько другое дело, вы все еще можете выпустить его как проект с открытым исходным кодом, но только для внутреннего использования. Иначе как построить проект? Как составить список библиотек, с которыми вы должны скомпоноваться? Вы связываетесь статически или используете DLL?   -  person Some programmer dude    schedule 11.07.2019
comment
Релиз @Someprogrammerdude находится в файле .MSI, который могут использовать члены организации. Это должно быть безотказно для конечного пользователя, который будет устанавливать программное обеспечение, т.е. автономно. В VS studio в свойствах проекта Каталоги VC++ › Включить каталоги › указывают на корневой каталог, где установлен Boost (C:\Local\Boost1.60.0\x32). И Linker›Общие›Дополнительные библиотеки›C:\Local\Boost1.60.0\x32\lib32-msvc-14.1\ - где находятся файлы .dll&.lib.   -  person newprint    schedule 11.07.2019


Ответы (1)


Существует утилита BOOST — BCP Я думаю, что эта утилита может быть полезна для решения вашей проблемы.

ниже цитата из мануала:

Утилита bcp — это инструмент для извлечения подмножеств Boost, он полезен для авторов Boost, которые хотят распространять свою библиотеку отдельно от Boost, и для пользователей Boost, которые хотят распространять подмножество Boost со своим приложением.

bcp также может сообщить, от каких частей Boost зависит ваш код и какие лицензии используются этими зависимостями.

person SergV    schedule 12.07.2019