Вопрос

Я совсем новичок в использовании boost и, похоже, нигде не могу найти документацию о том, как распространять ваше приложение при использовании boost?

Многие библиотеки являются общими библиотеками, я не ожидаю, что у моих пользователей будет установлен boost, я использую только одну библиотеку (regex), поэтому есть простой способ упаковать библиотеку regex с моим приложением без компиляции со статической версией?

Это было полезно?

Решение

Linux

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

Поиск библиотек в Linux немного сложнее. Он не загружает автоматически общие объекты из текущего каталога, если они связаны во время компиляции (в отличие от загрузки во время выполнения с помощью dlopen).

Вы должны использовать переменную env LD_LIBRARY_PATH или использовать rpath . У обоих есть свои недостатки.

Окна

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

Оба

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

В любом случае большинство библиотек в boost имеют только заголовки, regexp не входит в их число. Для этого модуля должно быть достаточно включить dll. В Linux вы можете проверить, с какими общими библиотеками ваш двоичный файл скомпилирован, используя:

ldd binary
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top