Распространение с Boost Library? - PullRequest
       14

Распространение с Boost Library?

9 голосов
/ 11 сентября 2009

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

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

1 Ответ

8 голосов
/ 11 сентября 2009

Linux

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

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

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

Windows

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

Оба

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

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

ldd binary
...