Строительство Boost BCP

Я пытался построить Библиотеки Boost C++ последние два часа и остановился без каких-либо результатов. Поскольку я новичок в C++, я не могу правильно выполнить сборку. Как я могу правильно его собрать с помощью Visual Studio 2008?

Мне нужно использовать инструмент BCP для извлечения подмножества библиотеки. Итак, мне нужно сначала построить BCP, верно? Как это сделать? Когда я попытался его построить, у меня появилась следующая ошибка

fatal error LNK1104: cannot open file 'libboost_filesystem-vc90-mt-gd-1_37.lib'.

Где я могу получить указанный выше файл библиотеки?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
48
0
17 636
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Во-первых, вам необходимо иметь правильные переменные среды PATH, INCLUDE и LIB в вашей командной оболочке. Для этого вызовите файл «vcvarsall.bat» (или аналогичный) с параметром:

vcvarsall.bat x86

Затем вам нужно создать bjam (вы также можете загрузить его со страницы Boost, но это почти так же быстро). Перейдите в папку tools\jam\src в Boost и введите:

build.bat

Должна появиться подпапка bin.ntx86, содержащая bjam.exe. Для удобства скопируйте его в основную папку Boost. Затем вы можете построить bcp. Зайдите в папку tools\bcp и введите:

..\..\bjam.exe --toolset=msvc

Вернувшись в основную папку Boost, вы можете создать любую библиотеку, которую хотите:

bjam toolset=msvc –-with-{library}

где {library} - одна из библиотек для сборки. Все собираемые библиотеки можно показать с помощью:

bjam –-show-libraries

Есть еще много параметров сборки bjam. Некоторые параметры с ключевыми словами, которые вы можете указать:

variant=debug|release
link=shared|static
threading=multi|single

Примером может быть:

bjam toolset=msvc –-with-filesystem threading=multi variant=debug stage

Для получения дополнительной информации посетите Страницы документации Boost.

Обновлено: обновлена ​​ссылка на самую последнюю документацию по Boost.

Обновлено: исправлены параметры --with- {library} и –-show-libraries.

Спасибо за отличный ответ! Это мне очень помогло.

Zack The Human 08.09.2009 08:57

Это --with-{library} и --show-libraries. Два '-', а не один.

KTC 14.05.2010 13:57

Спасибо KTC, в документации сказано то же самое. Я поправил ответ.

vividos 17.05.2010 12:34

При использовании этих инструкций с повышением 1.46 возникают некоторые проблемы, включая отсутствие tools/jam и сбой сборки bcp.

Roman Starkov 27.03.2011 19:58

Решение проблемы отсутствия инструментов / заклинивания (минимум 1,48); запустите bootstrap.bat, он скопирует для вас bjam в основную папку boost.

Salami 20.02.2012 05:49

Обратите внимание, что вам не нужно создавать версии bcp для Windows из исходного кода - вы также можете загрузить двоичную версию из http://www.boostpro.com/download и пропустить все эти шаги.

(Или, по крайней мере, так обстоит дело в теории - я не пробовал; я только что нашел ту и эту страницу, когда искал готовую версию для Linux.)

Примечание: сайт требует регистрации, чтобы разрешить загрузку.

Roman Starkov 31.12.2009 20:43

По-видимому, он также не предоставляет вам bcp по умолчанию ... вам в любом случае придется создавать его самостоятельно.

jamuraa 05.01.2010 19:21

Бинарный файл Windows bcp можно скачать отсюда: netcologne.dl.sourceforge.net/project/boost/boost-binaries/…

Mihai Rotaru 19.01.2013 15:44

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

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

bootstrap.bat

Затем, когда Boost.Build будет собран, введите:

b2 tools/bcp

Полученный двоичный файл находится в dist / bin / bcp.

davidA 23.01.2013 04:19

Я сделал 3 шага: > bootstrap.bat > .\b2 > .\b2 tools/bcp И затем я смог его использовать: C: \ Users \ pedro \ dev-VS2008 \ boost_1_59_0> dist \ bin \ bcp boost \ tokenizer.hpp C: \ Users \ pedro \ dev-VS2008 \ MyProject \ boost_1_59_0

Pedro Ferreira 28.08.2015 18:56

Я извлек источник: https://github.com/district10/cmake-bcp (вам не нужно настраивать BOOST, потому что весь исходный код уже включен).

В Linux cmake + make для сборки:

# cd source_dir
mkdir build && cd build
cmake ..
make

В Windows: CMake-GUI + Visual Studio для сборки. Нужна помощь? См. HOWTO: Win + CMake + Visual Studio 2010.

Мои исполняемые файлы:


Совет: если вы столкнетесь с проблемами связывания в Windows при использовании Boost, проверьте boost/config/auto_link.hpp, и вы все поймете. Чтобы решить эту проблему, вы можете просто закомментировать весь файл.

Престижность за предоставленные двоичные файлы! Сэкономил мне, наверное, 8 часов компиляции.

Samuel 23.10.2017 12:11

Кстати, время компиляции меньше 1 минуты. Это просто Boost bcp для компиляции, а не весь Boost.

dvorak4tzx 11.12.2019 05:27

Другие вопросы по теме