Boost c установка windows

How to install the C++ Boost Libraries on Windows

By Andres Jaimes

September 27, 2012

Boost is a set of high-quality libraries that speed up C++ development. They are included in most linux distributions and some of them are already part of the C++ Standard Library. In the Windows environment, you have to install them in order to take advantage of them.

If you are using Microsoft Visual Studio, you can avoid the following steps by downloading a binary version from http://www.boostpro.com/download/ and skip to the Testing section in this document.

Before we start, you may want to read my previous article on installing a C++ compiler on Windows.

Installation

Download and unzip the boost source code from http://www.boost.org/ . I will unzip it to C:optc-libs, but you can use the one you prefer. After you unzip, open a command line and go to your selected folder:

Start bootstrap.bat and specify your toolset. Toolsets supported by this script are: borland, como, gcc, gcc-nocygwin, intel-win32, metrowerks, mingw, msvc, vc7, vc8, vc9, vc10, vc11. In my case I will use the mingw toolset:

All required files for compilation should be ready. Now you have to define a installation directory and specify a toolset. Toolsets here are a little bit different from the ones we used before:

  • acc: Hewlett Packard, Only very recent versions are known to work well with Boost
  • borland: borland
  • como: Comeau Computing, Using this toolset may require configuring another toolset to act as its backend
  • darwin: Apple, Apple’s version of the GCC toolchain with support for Darwin and MacOS X features such as frameworks.
  • gcc: The Gnu Project, including Cygwin and MinGW
  • hp_cxx: Hewlett Packard, Targeted at the Tru64 operating system.
  • intel: Intel****
  • msvc: Microsoft
  • sun: Sun, Only very recent versions are known to work well with Boost.
  • vacpp: IBM, The VisualAge C++ compiler.

Since I’m using MinGW I will use gcc.

At this time you can go get a cup of coffee. Or maybe two.

When compilation ends, go to your selected installation path (watch out!, this is not the folder where you originally unzipped the source code). You will find two folders: include and lib. Both folders should contain files. That means you are done and ready for the testing phase.

If any of the afore mentioned folders is empty then we have problems. Common problems arise due to selecting the wrong toolset for compiling, so if your lib folder is empty try choosing a different toolset. If error persist, take a look at the compilation output. Errors must be shown there, specially at the last lines of the output.

Testing

From your IDE create a file named main.cpp and copy the following text onto it:

In order to let your compiler know where to look for the headers and libraries, you have to follow the next steps. You can usually accomplish them by right clicking on your project and selecting Properties or Options.

Add the following path to your includes list:

Add the following path to your additional library directories list

Important: if you are using Netbeans, you should only type /installation/path/lib (you have to omit the C:). For a very strange reason, Netbeans adds a forward slash at the beggining of the parameter /L used to compile (only when it begins with C:) resulting in an unknown path. This might be fixed in later versions.

If you are using a gnu compiler (that is Cygwin or MinGW), you must also add the specific library to the linker. If you are using Microsoft Visual Studio you can skip this step because it includes the so called auto-linking support. But, in my case, I have to add the following library to my libraries list so the linker performs without complaints:

Читайте также:  Ватсап для linux mint

This file name is composed by:

  • The standard lib prefix. DLL’s do not use it.
  • The library name boost_regex.
  • The toolset used to compile it, in my case mgw47, that is MinGW version 4.7.
  • The threading tag mt, which indicates if the library accepts multithreading.
  • The ABI tag, that can be: d for debugging, s for static linkage or g, y, p which are not covered in this text.
  • The version tag.
  • The extension, which can be .lib or .a.

You are ready. Build the program.

Time to execute it

The program you just compiled (and linked) can parse a text file looking for a line starting with the text “Subject:” in it. So to test it, copy and paste the following text into an empty text file and name it test.txt (save it in the folder where your .exe file resides):

Now, from a command prompt type:

If everything goes right you should see the following text:

Conclusion

At this point, boost should be ready on your Windows computer. I suggest you read about this tremendous library since it can help you make your life a lot easier.

Дневник программиста

среда, 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 будет размещены установленные конечные файлы библиотеки.

Читайте также:  Как сохранить свои закладки при переустановке windows

как правильно установить буст

Я скачал 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

Читайте также:  Jdk для mac os

теперь включаемые файлы готовы.

если мой проект x86:
перейдите по ссылке: компоновщик-> Общие-> Дополнительные каталоги библиотек-> Изменить-> Добавить новую папку-> C: \ Boost \ win32 \ Lib

если мой проект x64:

компоновщик-> дополнительные каталоги библиотек-> редактировать-> добавить новую папку-> C: \ Boost \ x64 \ Lib

Я хотел бы, чтобы этот пост был полезен всем, кто не смог его установить.

Как установить библиотеку 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 часа на то, чтобы один раз в этом разобраться, Вы никогда не будете зависеть ни от каких сторонних сборок, будете понимать, где у Вас что лежит, кто туда положил и т.п. В общем, это полезно.

Оцените статью