Я загрузил библиотеки Boost, и теперь хочу создать только несколько библиотек. Какая была бы правильная команда для этого? По-видимому, опция built-type = complete дает мне слишком много. Я использую Windows XP и хочу использовать Bjam для компиляции Boost и MinGW, чтобы, наконец, использовать его. На данный момент мне кажется, что мне нужны библиотеки Boost.filesystem, Boost.ProgramOptions и Boost.System. Другой вопрос: где я могу разместить библиотеки только для заголовков?
Boost library - создайте только то, что мне нужно
Ответ 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
У меня такая же проблема. Но я нашел способ создать необходимые файлы.
Шаги, чтобы следовать:
- Если у вас Microsoft Visual Studio 2010, откройте командную строку Microsoft Visual Studio (2010) в режиме администратора.
-
Сначала введите код:
bootstrap.bat
-
Затем введите следующий код для создания файлов 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
-
Файлы библиотеки будут созданы в папке 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
не сможет найти исходный код и варианты сборки для те библиотеки, которые не являются только заголовками. То есть вам также понадобится подкаталог lib
(и tools
).