Повышайте библиотеки - собирайте только то, что мне нужно - PullRequest
39 голосов
/ 17 января 2011

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

Ответы [ 6 ]

61 голосов
/ 17 января 2011

В шаг 5.2.4 из Приступая к работе Вы можете указать b2, какие библиотеки создавать:

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

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

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

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

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

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

  • ./configure для 1.38.0 и более ранних
  • ./bootstrap.sh для 1.39.0 и далее до 1.46.0
13 голосов
/ 20 марта 2014

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

b2.exe -with-LIBRARY

Например,

b2.exe -with-test
7 голосов
/ 10 апреля 2015

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

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

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

bootstrap.bat

Затем, после создания Boost.Build, введите:

b2 tools/bcp

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

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

Это копирует межпроцессный процесс и его зависимости в /tmp/interprocess.

6 голосов
/ 19 июля 2016

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

Последовательность шагов:

  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.

2 голосов
/ 28 апреля 2014

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

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...