Как получить файлы библиотек Boost, которые работают с Visual Studio?

Вот вопрос, который вы, возможно, видели вокруг "сетей в разных формах"... подытожил здесь для вас удовольствие от Google: -)

У меня есть проект, который построен с помощью Microsoft Visual Studio и использует функциональность от boost (http://www.boost.org/). У меня уже есть мой проект, работающий с некоторыми из библиотек, которые являются только заголовками (без связи с бинарной библиотекой). Как или где я могу получить двоичные файлы для других библиотек?

Ответ 1

Существует три различных варианта доступа к бинарным библиотекам:

1) Создайте их из источника.
Перейдите в каталог boost и запустите:

    bootstrap
    .\bjam

Или усложнитесь и сделайте что-нибудь вроде:

    bjam --stagedir="c:\Program Files\Boost" --build-type=complete --toolset=msvc-9.0 --with-regex --with-date_time --with-thread --with-signals --with-system --with-filesystem --with-program_options stage

2) Используйте установщик BoostPro (http://www.boostpro.com/download), чтобы получить нужные библиотеки.
  Это очень приятно, потому что он загружает и устанавливает файлы, которые, как вы говорите, хотите. Тем не менее, он никогда не имеет самой последней версии, и нет 64-битных двоичных файлов.

3) Загрузите весь набор библиотек (http://boost.teeks99.com)
  Простота в использовании, простота в использовании, но библиотеки огромны (7 ГБ разархивированы!).
 Редактировать 2013-05-13: Мои сборки теперь доступны (начиная с 1.53) непосредственно с страницы sourceforge.

Ответ 2

conda-forge (автоматизированный инструмент для создания кросс-платформенных облаков и диспетчер пакетов) предоставляет двоичные файлы для всех основных платформ:

https://anaconda.org/conda-forge/boost

Теперь вы можете получить бинарные файлы Boost:

http://sourceforge.net/projects/boost/files/boost-binaries/

Однако они не указывают, является ли версия выпуска или отладки.

Ответ 3

Соберите их самостоятельно. Загрузите исполняемый файл bjam с сайта boost, затем выполните следующую команду из корневого каталога boost src:

bjam --toolset = msvc --build-type = complete define = _BIND_TO_CURRENT_MFC_VERSION = 1 define = _BIND_TO_CURRENT_CRT_VERSION = 1 этап

Затем иди кофе, или оставь его на ночь. После этого вы получите результаты в папке "stage". Добавьте этот каталог в свои "файлы библиотек" в папках options- > projects and solutions- > VС++.

Ответ 4

Раньше я предпочитал использовать BoostPro для установки библиотек Boost, которые нуждались в отдельной компиляции, таких как Boost.Regex, но, увы, этого нет дольше, по-видимому, поддерживается.

Перейдите на страницу Boost Getting Started for Windows, она расскажет вам почти все, что вам нужно знать в раздел 5.2.1. Вот простое руководство (со скриншотами), в котором показано, как начать.

Подводя итог, из командной строки вам нужно запустить следующие команды:

> boostrap.bat
> .\b2

Запуск команды. \b2 может занять некоторое время.

И затем в свойствах проекта Visual Studio вам необходимо:

  • Выберите вкладку "Общие" C/С++ > "Общие" и установите поле "Дополнительные каталоги Include"
  • Выберите вкладку Linker > General и установите поле Additional Library Directories.

Для шага 2 обычно это каталог stage\lib корневого каталога Boost.

Ответ 5

1) перейдите в папку boost

2) запустить бутстрап   - note: bjam, похоже, не работает в данный момент, но, возможно, я сделал что-то не так.

3) запустите. \b2 это должно настроить boost по умолчанию на то, что он обнаруживает в качестве основного или, возможно, самого последнего набора инструментов Windows, поэтому для меня это msvc11.0

тогда вы ждете некоторое время, и вуаля!

как сказано выше, просто включите каталоги boost libs (D:\boost_1_5x_x\stage\lib) и включите их в соответствующие поля дополнительных каталогов. Вам необязательно делать это из "C/С++" или "Linker". есть заголовок VС++, который содержит все соответствующие поля. вы также можете, если вы регулярно используете boost, включите их в список унаследованных каталогов

** edit: только что поняли, что вышеприведенная запись описывает это. очень жаль.