Подтвердить что ты не робот

Boost library - создайте только то, что мне нужно

Я загрузил библиотеки Boost, и теперь хочу создать только несколько библиотек. Какая была бы правильная команда для этого? По-видимому, опция built-type = complete дает мне слишком много. Я использую Windows XP и хочу использовать Bjam для компиляции Boost и MinGW, чтобы, наконец, использовать его. На данный момент мне кажется, что мне нужны библиотеки Boost.filesystem, Boost.ProgramOptions и Boost.System. Другой вопрос: где я могу разместить библиотеки только для заголовков?

4b9b3361

Ответ 1

На шаге 5.2.4 " Начало работы" вы можете b2 какие библиотеки собирать:

./b2 --with-program_options --with-filesystem --with-system

В качестве альтернативы используйте ./b2 --show-libraries чтобы увидеть список всех библиотек, которые не только для заголовков.

Ниже приводится выдержка из страницы:

В частности, для ограничения количества времени, затрачиваемого на строительство, вас могут заинтересовать:

  • просмотр списка имен библиотек с помощью --show-libraries
  • ограничение того, какие библиотеки --with-<library-name> с помощью параметров --with-<library-name> или --without-<library-name>
  • выбрать конкретный вариант сборки, добавив release или debug в командную строку.

Примечание: команда b2 зависит от версии буста, поэтому используйте следующие команды для вашей версии буста (Также в этом случае используйте --with-libraries=<comma-seperated-library-names> version вместо --with-<library-name>):

  • ./configure для 1.38.0 и ранее
  • ./bootstrap.sh для 1.39.0 далее до 1.46.0

Ответ 2

Эти ответы не сработали для меня. На Windows это работало для меня:

b2.exe -with-LIBRARY

Например,

b2.exe -with-test

Ответ 3

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

Текущая версия Boost (1.50.0) использует Boost.Build. Новый рабочий процесс для создания BCP выглядит следующим образом:

В корневом каталоге Boost введите:

bootstrap.bat

Затем, после сборки Boost.Build, введите:

b2 tools/bcp

Чтобы извлечь, например, только interprocess, вы можете использовать:

$ mkdir /tmp/interprocess #bcp needs this
$ bcp interprocess /tmp/interprocess

Это копирует interprocess и его зависимости в /tmp/interprocess.

Ответ 4

У меня такая же проблема. Но я нашел способ создать необходимые файлы.

Шаги, чтобы следовать:

  1. Если у вас Microsoft Visual Studio 2010, откройте командную строку Microsoft Visual Studio (2010) в режиме администратора.
  2. Сначала введите код:

    bootstrap.bat
    
  3. Затем введите следующий код для создания файлов lib:

    b2.exe link=static runtime-link=static --with-chrono --with-date_time --with-filesystem --with-program_options --with-system --toolset=msvc-10.0 define=BOOST_USE_WINAPI_VERSION=0x0500
    
  4. Файлы библиотеки будут созданы в папке stage.

Ответ 5

Моя последняя попытка сборки для библиотек Boost 1.55 была разочарованием. Все попытки построить несколько библиотек и только их заканчивались полным беспорядком в выводе.

BJam либо пытается собрать все, либо построить только запрошенные, но в папках "bin.v2/[long-random-path]" (библиотека на каталог) с хламом в них, что является головной болью для копирования только библиотек ссылок куда-то остальное.

Я случайно нашел правильный способ собрать и собрать только те библиотеки, которые мне нужны, в одном месте без всякой другой чепухи:

bjam... --with- [library1] --with- [library2] stage

  • опция "stage" необходима для сборки и сбора библиотек в одну папку: /stage/lib
  • опция "--with- [library]" требуется для сборки только той библиотеки, которую вы хотите.

Ответ 6

Дополнительная заметка для всех, кто видит сообщение об ошибке: "error: wrong library name '<name of library>' in the --with-<library> option.".

Если вы попытаетесь быть умными, как и я, и только извлеките подкаталог boost загрузки в вашу систему, чтобы свести к минимуму пространство, b2 не сможет найти исходный код и варианты сборки для те библиотеки, которые не являются только заголовками. То есть вам также понадобится подкаталог libtools).