- plumbum’s blog
- среда, 15 сентября 2010 г.
- Установка boost под Windows
- как правильно установить буст
- Решение
- Другие решения
- Дневник программиста
- среда, 10 июля 2013 г.
- Установка boost под Windows для MinGW
- boost & MinGW
- Как установить библиотеку boost?
- 3 ответа 3
- Boost
- Где взять Boost
- Компоненты Boost
- Компиляция Boost
- Подключение Boost к Visual C++
plumbum’s blog
среда, 15 сентября 2010 г.
Установка boost под Windows
Второй пост из серии «Простой проект с использованием CMake, log4cxx, boost». Рассмотрим установку библиотек boost под Windows.
Существует два способа:
- собрать из исходников
- использовать инсталлятор
Выберем второй, как более простой. Boost Installer находится здесь, последняя на данный момент версия 1.44.0. Для работы установщика необходимо соединение с Интернет.
После запуска и принятия лицензии будет предложено выбрать зеркало, следует оставить значение по умолчанию (Nearest SourceForge Mirror). Затем требуется указать варианты конфигурации бинарников.
Данное окно позволяет выбрать вариант установки библиотеки. Например, если выбрать Visual C++ 2010, Multithread Debug DLL, то будут загружены все компоненты boost’а, собранные под 10-ую студию в динамически загружаемую библиотеку с отладочной информацией. Нам все компоненты не нужны, поэтому никаких галочек здесь не ставим, вместо этого выбираем отдельные компоненты.
Для текущего проекта понадобится Boost Filesystem, Boost System и все заголовочные файлы. Выбираем варианты Multithread Debug DLL и Multithread DLL под vs10.0. В PATH (Add to path чекбокс) ничего добавлять не нужно. Destination Folder оставляем по умолчанию. Затем следует процесс скачивания выбранных компонентов. Если возникают проблемы с доступностью серверов и соединение рвется, следует перезапустить установщик с теми же параметрами.
На вопрос об обновлении PATH отвечаем отрицательно, это действие выполним вручную. Поскольку мы будем линковаться с динамически загружаемыми библиотеками, они должны быть доступны нашей программе при запуске. Для этого в PATH добавляем C:\Program Files\boost\boost_1_44\lib, т.е. папку с бинарными файлами boost’а.
На этом установку можно считать законченной.
как правильно установить буст
Я скачал boost_1_61_0 и расстегнул молнию.
я использовал bootstrap.bat порождающий b2.exe а также bjam.exe и успешно построенные библиотеки в папке с именем «stage» для обоих x64 а также win32 ,
После того как я .lib а также boost папки, содержащие включаемые файлы.
Когда я удаляю корневую папку, я не могу собрать свою программу.
Почему я не могу построить код?
Я использовал BS как:
Это создает C:\boost который содержит библиотеки и заголовочные файлы. Но когда я пытаюсь использовать эту новую папку в моем проекте, я получаю ошибки: couldn’t find eg: boost/reg.hpp
Есть ли правильный способ установить boost после сборки?
Решение
Включение буста находится в созданной вами папке c: \ boost. Таким образом, путь выглядит так: c: \ boost \ boost, как вы уже выяснили.
Но еще лучше использовать переменные среды.
Вы найдете их под панелью управления> Система> Дополнительно> …
Задавать BOOST_ROOT в c: \ boost и BOOST_LIB на ваш сценический путь. Я держу все сборки v100, v140 x86 и 64 бит в одной папке. Затем в ваших проектах вы можете установить дополнительные каталоги включения в $ (BOOST_ROOT) и каталоги lib в $ (BOOST_LIB).
Это дает вам много преимуществ, например, когда выйдет 6.62, вы можете поместить его в c: \ boost_62 и изменить переменные окружения, тогда все ваши проекты будут использовать новое повышение. Вам не нужно зацикливаться на c: \ boost. И если вы поделитесь проектом с кем-то другим по другому пути, он просто работает.
BOOST_ROOT выглядит довольно универсально, я не знаю о BOOST_LIB
Кроме того, если вы измените переменную среды, вам придется закрыть Visual Studio и снова открыть ее, чтобы изменения вступили в силу.
Другие решения
Привет, ребята, я понял это:
1 — извлечь boost_1_61_0, например, в C: так новая папка с именем «C: \ boost_1_61_0»
2- из командной строки или Visual Studio 2015-> Инструменты Visual Studio-> Командная строка разработчика для MS2015 (запустите ее с правами администратора)
3-кд C: \ boost_1_61_0
поэтому создаются новые файлы: b2.exe и bjam.exe в корневой папке.
Теперь мы собираем 64-разрядную версию библиотеки Boost:
5- b2 -j8 toolset = msvc-14.0 address-model = 64 архитектура = x86-ссылка = статическая многопоточность = multi-runtime-link = общая — тип сборки = минимальная стадия —stagedir = stage / x64
В корневом каталоге создается новая папка «Stage», внутри которой находится папка с именем x64, внутри которой находится папка «lib» (.lib files). процесс занимает несколько минут (около 20 минут)
когда это сделано, сообщение говорит вам, что boost_1_61_0 пропускает некоторые цели, не против того, что это ничего, потому что он принадлежит другим ОС
Теперь мы собираем версию для x86:
b2 -j8 toolset = msvc-14.0 address-model = 32 архитектура = x86 link = статическая многопоточность = multi-runtime-link = shared —build-type = минимальный этап —stagedir = stage / win32
- подождите, пока это не будет сделано.
теперь у нас есть две версии x64 и win32, но корневая папка слишком большая, около 5,3 гигабайта.
Теперь мы устанавливаем эти две библиотеки в «C: \ Boost», а затем очищаем, удаляя папку «C: \ boost_1_61_0»:
b2 -j8 toolset = msvc-14.0 address-model = 64 архитектура = x86 link = статическая многопоточность = multi-runtime-link = shared —build-type = минимальный этап —stagedir = C: \ Boost \ x64 install
- Я добавляю install и изменяю имя папки от рабочей области до «C: \ Boost \ X64», когда это делается, создается новая папка «C: \ Boost», которая содержит папку include и папку x64, которая содержит файлы lib.
Теперь мы устанавливаем версию Win32:
b2 -j8 toolset = msvc-14.0 address-model = 32 архитектура = x86 link = статическая многопоточность = multi-runtime-link = shared —build-type = минимальный этап —stagedir = C: \ Boost \ win32 install
- когда это будет сделано, удалите папку с именем lib внутри: C: \ Boost \
- время почистить и освободить память:
- удалите папку с отверстиями: C: \ Boost_1_61_0, потому что она нам больше не нужна
** как добавить буст в мой проект ?:
откройте Msvc2015-> создать новый проект консоли c ++, когда он будет создан, перейдите в Project->
Свойства «MyBoostProject» -> C / C ++ -> General-> Дополнительные каталоги include-> edit-> new folder-> C: \ Boost \ include-> boost_1_61
добавьте еще одну папку с путем: C: \ Boost \ include-> Boost_1_61_0-> Boost
теперь включаемые файлы готовы.
если мой проект x86:
перейдите по ссылке: компоновщик-> Общие-> Дополнительные каталоги библиотек-> Изменить-> Добавить новую папку-> C: \ Boost \ win32 \ Lib
если мой проект x64:
компоновщик-> дополнительные каталоги библиотек-> редактировать-> добавить новую папку-> C: \ Boost \ x64 \ Lib
Я хотел бы, чтобы этот пост был полезен всем, кто не смог его установить.
Дневник программиста
среда, 10 июля 2013 г.
Установка boost под Windows для MinGW
boost & MinGW
При работе в Linux проблем с установкой каких-либо дополнительных библиотек из родного репозитория программ, как правило, не возникает. Все, что нужно сделать, это выбрать необходимое из репозитория и установить. Репозиторий и представляет собой коллекцию специально отобранных и подготовленных пакетов предназначенных работать в системе, для которой этот репозиторий предназначен. В мире Windows такого понятия нет. Поэтому, при установке отдельных элементов разработки, например, библиотек, законным может встать вопрос о том, под какую систему сборки необходимо выполнить данную установку.
Стандартная установка boost ориентирована на подключение к Visual Studio. Здесь же мы рассмотрим установку boost под систему сборки MinGW. Система MinGW должна быть уже установлена. Ее можно установить отдельным пакетом, но так как я используют для работы с кодом C/C++ среду разработки QtCreator, то я устанавливаю MinGW вместе с комплексным пакетом QtCreator + Qt SDK.
Получить требуемую версию установочного пакета можно на сайте www.boost.org. Скачаем ее, распакуем и разместим в любом удобном для компиляции месте файловой системы. Можно разместить прямо в корне диска C:. Приведу пример на основе версии 1.52, которая мне понадобилась. Скаченный пакет имел название boost_1_52_0.tar.bz2 и был распакован по пути C:/boost_1_52_0. Здесь и далее я буду использовать прямые слеши в обозначении путей согласно нотации POSIX, чтобы свести к минимуму разницу с работой в *nix.
Для сборки библиотеки boost необходимо воспользоваться командной строкой. Чтобы быть уверенным в установке необходимых системных переменных для MinGW для командной строки, вызовем окно с коммандным процесором cmd через главное меню Windows. Для этого щелкнем кнопку «Пуск» и в установленных программах выберем раздел «Qt SDK/Desktop» внутри которого выберем запуск командной оболочки — «Qt x.x.x for Desktop (MinGW)». Откроется окно с приглашением командного процессора cmd.
С помощью команд процессора cmd необходимо зайти в директорию C:/boost_1_52_0. Для тех, кто еще не подружился с работой в командной строке Windows напомним, что для этого можно выполнить следующие команды.
Значок > означает приглашение к вводу команды для процессора cmd. Не следует писать его самому.
Теперь необходимо выполнить сборку специального инструмента bjam, который и будет управлять компиляций библиотеки boost под указанный компилятор. Чтобы собрать bjam под MinGW необходимо выполнить в директории C:/boost_1_52_0/ следующую команду.
После успешного выполнения этой команды, требуется, собственно, собрать boost. Это делается следующим образом.
Значение параметра toolset определяет систему сборки, а текущее значение параметра link указывает на необходимость сборки не только статических, но и динамических библиотек. При успешной сборке библиотеки, в директории C:/boost будет размещены установленные конечные файлы библиотеки.
Как установить библиотеку boost?
Доброго времени суток. Нужна помощь!
Хочу установить библиотеку boost. Во всех туториалах люди заходят в консольку Visual Studio Command Prompt (2010). Но проблема в том, что я не могу ее найти! Искать в винде пробовал — не нашел.
У меня экспресс-версия! Дело в этом?
3 ответа 3
Библиотека boost — это набор частично компилируемых исходных кодов. В некоторых случаях ничего не нужно собирать, достаточно скачать с официального сайта дистрибутив, разместить в удобном месте и в настройках проекта указать пути.
У меня в специальной папке, где я храню библиотеки многоразового использования, лежит подпапка boost_1_56_0 . Рядом с нею еще ряд других более старых версий этой библиотеки.
В переменные среды (в windows это там же, где и PATH) я заношу переменную BOOST_ROOT , которая указывает на последнюю сборку. Т.е. как появится новая, я создам папку boost_1_XX_Y и переназначу эту переменную.
В настройках любых проектов мне достаточно указать $(BOOST_ROOT)\include — для доступа к headers, и $(BOOST_ROOT)\stage\lib32 / $(BOOST_ROOT)\stage\lib64 для доступа к конкретным библиотекам, нужной мне разрядности.
Поскольку boost автоматически выдает имена собираемым библиотекам, с учетом компиляторов, которыми они собираются, даже если у Вас разные компиляторы, бинарники удобно сбрасывать в одну папку, как указано выше.
- С Intel Compiler у Вас получатся libboost_name-iw-type-version.lib .
- С Visual Studio у Вас получатся libboost_name-vcXX-type-version.lib , где XX — версия компилятора visual studio (не студии, а именно компилятора).
- С MinGW с gcc у Вас получится libboost_name-gcc-type-version.lib , если мне не изменяет память.
При этом для сборки библиотек, которые необходимо собирать, необходимо выполнить одни и те же действия в консоли:
- Для Intel Compiler это будет в соответствующем Command Prompt.
- Для Visual Studio это будет в соответствующем Command Prompt.
- Для MinGW это будет в обычной консоли, если, конечно, путь к bin в MinGW у Вас добавлен в переменную среды PATH.
Действия надо выполнить одни и те же. Сначала bootstrap.bat , а потом b2 —help .
В хелпе b2 Вы увидите все варианты настройки сборки, чтобы собрать наиболее удобным Вам образом.
Строчка будет выглядеть так:
b2 параметр1 параметр2 параметр3 .
- toolset — его стоит указать, чтобы сборка производилась конкретным компилятором (gcc, intel, visual studio), причем можно указать и версию компилятора.
- variant, вид сборки, debug или release. Для разработки Вам понадобятся оба варианта.
- link — Вы выбираете, будет Ваш бинарный код обращаться в dll или содержать «в себе» все используемые алгоритмы.
- threading — честно говоря, плохо понимаю смысл этой директивы и всегда указываю multi. Редко мы пишем однопоточные приложения.
- runtime-link — то же, что и link, только для рантайма.
- address-model — параметр не указан в хелпе, но помогает выбрать архитектуру собираемых библиотек.
- stage/install, отличаются лишь тем, что install позволит «выгрузить» только нужное в отдельную папку, stage собирает всё туда, где оно есть. Если Вы не увлекаетесь изменениями исходников boost, stage Вам вполне подойдет.
В итоге получается что-то вроде вот такого:
Для дебага в x32 и такого:
Для релиза в x32.
Ждете около 40 минут, радуетесь результату. В случае проблем — гуглите, скорее всего уже тысячи людей сталкивались с Вашей проблемой, и ее решение — невнимательность или какие-то специфические настройки чего-нибудь. Например, при сборке boost python вылезает много warning-ов на MinGW из-за конфликта хедеров, подобные вещи можно разрулить в частном порядке.
Потратив 2 часа на то, чтобы один раз в этом разобраться, Вы никогда не будете зависеть ни от каких сторонних сборок, будете понимать, где у Вас что лежит, кто туда положил и т.п. В общем, это полезно.
Boost
Boost является одной из самых известных и наиболее часто используемых программистами С++ библиотек. Сейчас сложно даже представить область программирования (веду речь про С++), где бы не использовался boost или хотя бы отдельные его части. На самом деле буст это общее название, своеобразное знамя, собирающее под собой целую кучу различных библиотек, которые охватывают огромное количество повседневных задач. Именно из-за того, что boost значительно упрощает и ускоряет разработку ПО, он и завоевал такую большую популярность. Естественно, boost используется и при разработке игр, по тем же самым причинам: экономия времени, надёжность, проверенность временем, широкая известность (легко найти нужных программистов), простота использования.
Не подумайте, что я пишу все эти статьи по установке “лишнего” софта только от того, что мне нечего больше написать – просто этот софт нам понадобится уже в самых ближайших уроках и без него вы не сможете продолжить создание наших с вами общих игр.
Где взять Boost
Boost это свободное программное обеспечение и скачать его исходники можно с официального сайта . Кстати, там же находится и полная документация по всем его компонентам .
Компоненты Boost
Как я уже сказал, в состав boost входит довольно большое количество библиотек. Кстати, большой плюс буста в том, что он является кроссплатформенным, т.е. он работает и под Windows, и под Linux, и под MacOS – то есть под большинством наиболее распространённых операционных систем. И для того, что бы портировать вашу программу из-под Windows, например, под MacOS, вам не нужно будет даже прикасаться к коду, использующему boost – достаточно просто перекомпилировать программу и всё будет работать.
Наиболее часто используются следующие компоненты Boost:
- boost::asio – библиотека работы с сетью. Через некоторое время я покажу в уроках как его использовать.
- boost::bind – очень часто используемая библиотека, в ней находятся враперы для простого использования фукнторов, указателей на функции и т.д.
- boost::CRC – библиотека функций CRC (контрольные суммы)
- boost::DateTime – функции работы с датой/временем/периодами времени
- boost::Filesystem – функции работы с фалами и файловой системой
- boost::Function – врапперы для отложенного вызова функций и реализации коллбэков
- boost::Interprocess – функции для межпроцессоного взаимодействия. С их помощью разные процессы (программы) могут общаться друг с другом.
- boost::Pool – функционал для работы с пуллами
- boost::ProgramOptions – функции для простой работы с опицями программы
- boost::Python – обёртки для простой интеграции питона в ваши приложения или расшаривания ваших функций и библиотек в питон
- boost::Regex – библиотека для работы с регулярными выражениям
- boost::Serialization – сериализация и десериализация объектов. Можно использовать, например, для созхранения состояния игры в файл и для чтения из файла.
- boost::Signals/Signals2 – реализации концепции сигналов/слотов. Например, с помощью этой библиотеки можно организовать обмен сообщениями (между монстрами в игре, скажем)
- boost::SmartPtr – крайне часто используемая библиотека, реализующая концепцию умных указателей. Работать без неё просто невозможно )))
- ну и ещё много-много разных других компонент
Компиляция Boost
Часть библиотек из состава boost не требуют установки и вы можете использовать их просто через инклюды. Но значительную часть, всё же, придётся для начала скомпилировать в библиотеки. Самый простой метод, это использовать boost-jam. Скачайте его вот тут , вам нужен архив, который назвается (в данный момент последняя версия) boost-jam-3.1.18-1-ntx86.zip. В этом архиве находится файл bjam.exe , его надо поместить в какую-то папку, которая прописана в системе в переменной %PATH%. Я обычно кидаю его в C:/Windows/
Есть и более правильный способ: просто запустите в папке boost’а файлик bootstrap.bat – он соберёт для вас bjam последней версии, это надёжнее и более правильно.
Что бы посмотреть все доступные опции сборки надо ввести команду:
До начала сборки самого буста позаботьтесь о том, что бы на диске было свободно хотя бы 3-4 гигабайта свободного места. Ага, буст это штука немаленькая. Однако, не волнуйтесь – когда вы будете собирать свои программы с использованием буст, они не будут разрастаться до гигабайтных размеров – просто буст собирает все библиотеки в куче разных вариантов (линковки), да и потом, при сборке ваших программ, в них будут добавляться лишь реально используемые вами функции буста, а вовсе не вся библиотека. Если какие-то из вариантов линковки вы не собираетесь использовать никогда – вы можете отключить их компиляцию и тогда сборка буста пройдёт существенно быстрее. Однако, никогда наперёд не знаешь, понадобиться оно или нет, потому лучше скомпилировать всё – пусть будет, лишним не будет.
Итак, давайте запустим сборку:
Я отключил сорку буст-питон, т.к. он нам не нужен. Если вам он нужен и питон (включая исходники и либы) стоит у вас на компе – не отключайте его.
Теперь можно налить себе кофе, включить любимый сериал и долго-долго смотреть его… Процесс компиляции буста очень (ну оооочень) не быстрый. Я вас очень прошу – сделайте сборку буста сами, не пытайтесь найти где скачать её в сети – даже если вы сможете найти, есть очень большая вероятность, что она у вас просто не зработает…
Во время компиляции может сыпаться довольного много варнингов – просто не обращайте на них внимания – сборка всё равно должна пройти успешно.
В зависимости от мощности вашего компьютера, где-то через 20-60 минут сборка буста закончится. В папке boost’а появится новая папка “stage/libs” – в ней лежат все собранные библиотеки буста.
Подключение Boost к Visual C++
Осталось только добавить эту папку в список папок билиотек Visual Studio. И в список папок-инклюдов добавить “ваша_папка_где_буст/boost” – там лежат инклюды буста, а в либы добавлем папку “где_лежит_буст/stage/lib”. На этом установка буста закончена и он готов к использованию. Что бы убедиться в этом, вы можете взять любой пример с сайта boost’а и попробовать его скомпилировать.
Этот урок закончен. В следующем уроке я расскажу вам о том, как поставить и настроить luabind, который сильно упростит нам жизнь, а точнее позволит более просто использовать lua-скрипты в наших программах.
Если у вас возникнут какие-либо трудности при установке буста, напишите в комментах – я постараюсь помочь каждому обратившемуся.