Распространение с Boost Library?
-
05-07-2019 - |
Вопрос
Я совсем новичок в использовании boost и, похоже, нигде не могу найти документацию о том, как распространять ваше приложение при использовании boost?
Многие библиотеки являются общими библиотеками, я не ожидаю, что у моих пользователей будет установлен boost, я использую только одну библиотеку (regex), поэтому есть простой способ упаковать библиотеку regex с моим приложением без компиляции со статической версией?
Решение
Linux
Для бинарного распространения я рекомендую использовать управление пакетами дистрибутива, которое должно позаботиться о любых зависимостях. В некоторых коммерческих приложениях используются только двоичные двоичные объекты, и вам нужно самостоятельно установить версию boost.
Поиск библиотек в Linux немного сложнее. Он не загружает автоматически общие объекты из текущего каталога, если они связаны во время компиляции (в отличие от загрузки во время выполнения с помощью dlopen).
Вы должны использовать переменную env LD_LIBRARY_PATH или использовать rpath . У обоих есть свои недостатки.
Окна
Там нет пути, включая dll. Обычный подход заключается в том, чтобы поместить все в каталог и сжать его.
Оба
Для сборки из исходного кода вам все равно нужны источники повышения, поэтому нет необходимости включать библиотеки.
В любом случае большинство библиотек в boost имеют только заголовки, regexp не входит в их число. Для этого модуля должно быть достаточно включить dll. В Linux вы можете проверить, с какими общими библиотеками ваш двоичный файл скомпилирован, используя:
ldd binary