Скачиваем boost
Скачать boost с сайта boost.org. На данный момент, текущая версия: 1.57.0
Распаковываем архив
Распаковать в каталог на диске компьютера. Например, в каталог d:\sdk.
В этом случае, файлы библиотеки будут располагаться в каталоге d:\sdk\boost_1_57_0
Собираем boost
Многие библиотеки, входящие в состав boost, являются header-only, т.е. их код целиком и полностью находится в заголовочных файлах.
Ряд других библиотек (как правило, реализация которых зависит от используемой платформы), требуют предварительной сборки.
Открываем командную строку с настроенными переменными окружения установленной Visual Studio
В Start Menu->Programs выбрать Visual Studio 2013[1]\Visual Studio Tools.
В открывшемся окне Windows Explorer выбираем Developer Command Prompt for VS2013.
Переходим в каталог установки boost
Переходим в каталог d:\sdk\boost_1_57_0, выполнив из консоли команды
> d:
> cd d:\sdk\boost_1_57_0
Выполняем запуск скрипта для первоначальной сборки движка Boost.Build
Из командной строки запускаем скрипт bootstrap.bat:
> bootstrap
В результате будет собрано приложение b2.exe, при помощи которого можно будет выполнить сборку необходимых компонентов boost
Сборка библиотек boost
Для получения информации о доступных опциях командной строки запускаем приложение с ключом --help.
Сборка основного набора библиотек
Из командной строки выполняем запуск b2.exe
> b2.exe
Идем пить кофе, пока выполняется сборка библиотек.
По окончании должно появиться радостное приветствие об окончании процесса сборки.
Опциональная сборка версий библиотек, использующих статический C++-runtime
На предущем шаге по умолчанию будут собраны версии Debug и Release версии библиотек, использующие динамическую компоновку c runtime-библиотекой C++[2]. Это означает, что для запуска приложения на компьютере пользователя должен быть установлен C++ runtime.
При установке Visual Studio runtime-библиотеки устанавливаются по умолчанию, однако на компьютере конечного пользователя их может не оказаться (либо будут установлены не те версии). В результате приложение запустить не получится. Возможны 2 решения проблемы:
Установка C++ Runtime при установке приложения на компьютере конечного пользователя
При таком сценарии при установке приложения необходимо выполнить запуск установщика C++ runtime. Для Visual Studio 2013 exe-файлы установки располагаются в каталоге {Visual Studio installation folder}\VC\redist\1033. Рассмотрение данного сценария выходит за рамки настоящей статьи.
Статическая компоновка приложения с C++ Runtime.
В этом случае код С++ runtime будет содержаться внутри исполняемого файла приложения, и его запуск на компьютере пользователя не будет требовать предварительной установки C++ runtime на компютере.
В окне настроек C++ проекта на странице свойств Configuration Properties->C/C++->Code Generation настройку Runtime Library следует выставить в:
· Multi-threaded (/MT) в Release-конфигурации
· Multi-threaded (/MTd) в Debug-конфигурации
В этом случае все библиотеки, подключаемые к приложению (в т.ч. boost), должны также быть собраны со статической компоновкой C++ runtime.
Сборка boost со статической компоновкой C++ runtime.
Для сборки boost со статической компоновкой C++ runtime используем команду:
> b2 runtime-link=static
Также придется некоторое время подождать, пока сборка завершится. Собранные библиотеки boost будут иметь имя, отличное от библиотек, использующих динамическую компоновку с C++ runtime, поэтому их можно использовать совместно.
Анализ результатов
В результате сборки библиотек boost каталог {boost_install_dir}\stage\lib будет содержать файлы библиотек. Для каждой библиотеки будут собраны по 2 или 4 версии каждой библиотеки.
Каждый файл библиотеки имеет один из следующих вариантов имен:
Имя файла | Конфигурация | C++ Runtime |
libboost_<библиотека>-vc120-mt-<версия boost>.lib | Release | Dynamic |
libboost_<библиотека>-vc120-mt-gd-<версия boost>.lib | Debug | Dynamic |
libboost_<библиотека>-vc120-mt-s-<версия boost>.lib | Release | Static |
libboost_<библиотека>-vc120-mt-sgd-<версия boost>.lib | Debug | Static |
vc120 означает, что библиотека собрана с использованием компилятора 12-й версии[3] Visual C++.
Содержимое каталога с файлами библиотек примерно следующее: