Перейти к содержимому

Как установить библиотеку boost c

  • автор:

Как установить библиотеку boost c

The instructions mainly follow the Boost’s official guide for Windows. The current version of Boost (as of Jan 22, 17) is 1.63.0.

1. Get Boost
  • Download the copy of Boost for Windows platform via http://www.boost.org/users/history/version_1_63_0.html. Either .7z or .zip is fine.
  • Extract the archive file to your directory of choice. For this example I chose to extract to «C:/boost_1_63_0». In the folder you will see plenty of files including «bootstrap.bat».
2. Run bootstrap.bat
  • Click the Windows button and search for «Visual Studio 2015» folder.
  • Start Visual Studio’s command prompt. Now it depends on which OS version you have. For this example, since my OS is 64-bit Windows, the command prompt I need to run is «VS2015 x64 Native Tools Command Prompt». If your OS is 32-bit Windows, then «VS2015 x86 Native Tools Command Prompt».
    IMPORTANT: need to run the command prompt as administrator.
  • Change directory to the Boost folder using command «cd». For this example «cd C:\boost_1_63_0», then run «bootstrap».
3. Build Boost using b2

Under the previous command prompt, run a command «b2 install». The default installation directory is C:\Boost.
Remark: If you want to choose the directory of your choice, run «b2 install —prefix=PREFIX» where PREFIX indicates the path you want to install the Boost. For example, » b2 install —prefix=»C:\MyBoost64\» «. For this example I use the default command.
(Note that it might takes a while for this step)
Now you have successfully installed the Boost!
Under the Boost folder you will see two subfolders namely «include» and «lib».
The final step is to include the Boost library in Visual Studio’s C++ project.

4. Include Boost library in Visual Studio’s C++ Project
  1. Add «BOOSTPATH\include\boost-1_63″ to «C/C++ > Additional Include Directories»
  2. Add «BOOSTPATH\lib» to «Linker > Additional Library Directories»

How to Install C++ Boost Libraries on Windows?

Boost library is a set of a popular collection of peer-reviewed, free, open-source C++ libraries. It supports a number of tasks such as unit testing, image processing, multithreading, and mathematical aspects such as linear algebra and regular expressions. You can also store, numbers that are out of range of long long, or double. It was first made available on September 1st, 1999. There are 164 different libraries in it. In this article, we will learn, how to install the boost library in C++ on Windows.

Installing Boost Library in C++ on Windows:

Step 1: Go to Boost.org. Click on the Downloads option on the right side.

go to boost.org

Step 2: Click on the boost_1_72_0.zip file, to download the required boost library. It has an approx. size of 200MB.

download the boost zip to install boost library in c++

Step 3: Now, open the location where your zip file is downloaded. For example: This PC > Local Disk (C:) > Users > jh > Downloads > .

open folder location of the boost library.

Step 4: Select the zip file. Right-Click on it, and select Extract All…

extract the zip file at the same location

Step 5: The files get extracted at the same location, with the same folder name. Now, go to Program Files, and create a new folder name Boost.

create a new folder name boost in program files

Step 6: Now, copy the extracted folder boost_1_72_0 into the boost folder. Hence, the boost library is installed into our system.

copy, the extracted folder into the boost folder.

wait for the folder to move into boost folder, and the installation of the boost library is completed.

Verify the Installation of the Boost Library in C++

The successful compilation of the code will prove that the boost library is installed in windows.

Работа с Boost и CMake под Windows

Приветствую! Составил небольшую заметку по настройке и статической линковке библиотеки Boost с помощью CMake под Windows. Boost представляет собой набор библиотек на языке C++ с широким функционалом и является в некотором роде полигоном для апробирования некоторых идей, которые затем попадают в новые стандарты языка С++. Для установки и настройки CMake проекта прошу под кат!

Установка Boost

1. Скачивание и подготовка библиотеки

Скачайте библиотеку по адресу https://www.boost.org/users/download/ и распакуйте архив, например, в директорию C:/Boost. Затем перейдите в директорию и запустите файл bootstrap.bat, дождитесь окончания его работы. После этого запустите b2.exe и дождитесь окончания его работы. b2.exe осуществляет компиляцию исходного кода библиотек и у меня этот процесс занял более получаса. Точнее сказать не могу, так как оставил его работать и лёг спать, утром всё было готово.

2. Настройка CMake

Для подключения библиотеки Boost к вашему проекту добавьте следующие строки в CMakeLists.txt.

Обратите внимание на строку 16 – мы создаем исполняемый файл нашего проекта только в том случае, если библиотека найдена. Это условие не обязательно, но если вы работаете, например, в Visual Studio, то в случае отсутствия библиотеки, студия не будет отображать доступную к запуску цель, но и ошибки при компиляции не выдаст тоже. Использовать ли это условие или нет – выбор за вами.

Boost в действии

Давайте теперь для примера добавим в проект файл main.cpp со следующим кодом, взятым из примера работы с компонентом program_options библиотеки Boost:

Program_options является обработчиком параметров командной строки и предоставляет удобный интерфейс для работы. В рассмотренном фрагменте создается экземпляр объекта program_options desc и устанавливается заголовок для отображения справки. Справка будет вызываться параметром –help или -h. Далее регистрируются доступные параметры, с указанием через запятую полной и укороченной версии и описания команды. Укороченная версия параметров не является обязательной и может быть опущена. Для параметра compression устанавливается значение по умолчанию = 3. Далее идёт обработка введённых параметров.

П.с. из-за установленного значения по умолчанию код в строке 30 никогда не выполняется.

kaktusenok

Опишем, как установить библиотеку Boost для среды Visual Studio.

Шаг 1. Скачиваем исходные коды

Как правило, используется последняя версия библиотеки Boost. Если вам нужна более ранняя версия, то следует учитывать, что компилятор VS 2012 поддерживается с версии 1.52. Другими словами, вы не сможете использовать версию более раннюю чем 1.52 на VS 2012. Придётся установить более раннюю версию VS.

Ссылку на последнюю версию можно найти на странице http://www.boost.org/users/download. Обычно это ссылка ведёт на репозиторий вида http://sourceforge.net/projects/boost/files/boost/1.54.0/, откуда скачивается файл с именем boost_1_54_0.zip или другим в зависимости от версии.

Я буду выполнять установку библиотеки в папку d:\Projects\Libs\boost_1_54_0\. Если у вас другая папка, то все команды изменяются соответствующим образом.

Распаковываем архив boost_1_54_0.zip в папку d:\Projects\Libs\boost_1_54_0\. Из командного интерпретатора выполним следующие команды:

Если требуется изменить конфигурацию библиотеки, то именно сейчас нужно изменить файл ‘project-config.jam’. Если вы не знаете об этом, то оставляйте файл конфигурации как есть.

Далее запускаем процесс компиляции, введя команду b2.
Процесс компиляции длится около 20 минут. В конце отобразится информации о путях подключения библиотеки:

Можно использовать утилиту BlueGo, которая позволяет упростить процесс компиляции.

Шаг 3. Создание символьной ссылки

Поскольку будут выходить новые версии библиотеки, то каждый раз изменять пути с D:\Projects\Libs\boost_1_54_0\stage\lib на D:\Projects\Libs\boost_1_55_0\stage\lib и т.д. будет несколько утомительно.

Я предлагаю использовать символьные ссылки, а точнее точки соединения для папок:
Далее я буду использовать D:\Projects\Libs\boost вместо D:\Projects\Libs\boost_1_54_0.

Шаг 4. Создание проекта в Visual Studio

Заходим в свойства проекта и изменяем:

  • в элемент «Каталоги включения» добавляем «d:\Projects\Libs\boost»;
  • в элемент «Каталоги библиотек» добавляем «d:\Projects\Libs\boost\libs»;

  • в элемент «Дополнительные каталоги библиотек» добавляем «d:\Projects\Libs\boost_1_54_0\stage\lib»;
  • в элемент «Дополнительные зависимости» добавляем
    libboost_atomic-vc110-mt-gd-1_54.lib
    libboost_chrono-vc110-mt-gd-1_54.lib
    libboost_context-vc110-mt-gd-1_54.lib
    libboost_coroutine-vc110-mt-gd-1_54.lib
    libboost_date_time-vc110-mt-gd-1_54.lib
    libboost_exception-vc110-mt-gd-1_54.lib
    libboost_filesystem-vc110-mt-gd-1_54.lib
    libboost_graph-vc110-mt-gd-1_54.lib
    libboost_iostreams-vc110-mt-gd-1_54.lib
    libboost_locale-vc110-mt-gd-1_54.lib
    libboost_log-vc110-mt-gd-1_54.lib
    libboost_log_setup-vc110-mt-gd-1_54.lib
    libboost_math_c99-vc110-mt-gd-1_54.lib
    libboost_math_c99f-vc110-mt-gd-1_54.lib
    libboost_math_c99l-vc110-mt-gd-1_54.lib
    libboost_math_tr1-vc110-mt-gd-1_54.lib
    libboost_math_tr1f-vc110-mt-gd-1_54.lib
    libboost_math_tr1l-vc110-mt-gd-1_54.lib
    libboost_prg_exec_monitor-vc110-mt-gd-1_54.lib
    libboost_program_options-vc110-mt-gd-1_54.lib
    libboost_random-vc110-mt-gd-1_54.lib
    libboost_regex-vc110-mt-gd-1_54.lib
    libboost_serialization-vc110-mt-gd-1_54.lib
    libboost_signals-vc110-mt-gd-1_54.lib
    libboost_system-vc110-mt-gd-1_54.lib
    libboost_test_exec_monitor-vc110-mt-gd-1_54.lib
    libboost_thread-vc110-mt-gd-1_54.lib
    libboost_timer-vc110-mt-gd-1_54.lib
    libboost_unit_test_framework-vc110-mt-gd-1_54.lib
    libboost_wave-vc110-mt-gd-1_54.lib
    libboost_wserialization-vc110-mt-gd-1_54.lib
  • в элемент «Дополнительные зависимости» добавляем
    libboost_atomic-vc110-mt-1_54.lib
    libboost_chrono-vc110-mt-1_54.lib
    libboost_context-vc110-mt-1_54.lib
    libboost_coroutine-vc110-mt-1_54.lib
    libboost_date_time-vc110-mt-1_54.lib
    libboost_exception-vc110-mt-1_54.lib
    libboost_filesystem-vc110-mt-1_54.lib
    libboost_graph-vc110-mt-1_54.lib
    libboost_iostreams-vc110-mt-1_54.lib
    libboost_locale-vc110-mt-1_54.lib
    libboost_log_setup-vc110-mt-1_54.lib
    libboost_log-vc110-mt-1_54.lib
    libboost_math_c99f-vc110-mt-1_54.lib
    libboost_math_c99l-vc110-mt-1_54.lib
    libboost_math_c99-vc110-mt-1_54.lib
    libboost_math_tr1f-vc110-mt-1_54.lib
    libboost_math_tr1l-vc110-mt-1_54.lib
    libboost_math_tr1-vc110-mt-1_54.lib
    libboost_prg_exec_monitor-vc110-mt-1_54.lib
    libboost_program_options-vc110-mt-1_54.lib
    libboost_random-vc110-mt-1_54.lib
    libboost_regex-vc110-mt-1_54.lib
    libboost_serialization-vc110-mt-1_54.lib
    libboost_signals-vc110-mt-1_54.lib
    libboost_system-vc110-mt-1_54.lib
    libboost_test_exec_monitor-vc110-mt-1_54.lib
    libboost_thread-vc110-mt-1_54.lib
    libboost_timer-vc110-mt-1_54.lib
    libboost_unit_test_framework-vc110-mt-1_54.lib
    libboost_wave-vc110-mt-1_54.lib
    libboost_wserialization-vc110-mt-1_54.lib

Теперь проект успешно компилируется:

7 комментариев:

Серьезность Код Описание Проект Файл Строка
Ошибка LNK1181 не удается открыть входной файл "libboost_atomic-vc110-mt-1_54.lib" VStilsofteServer E:\Progect VisualStudio 2015\VStilsofteServer\VStilsofteServer\LINK
Почему у меня выдает такую ошибку

Необходимо добавить в Linker->Additional library directories
путь к boost_x_xx\stage\lib, где x — версия буста

Чтобы не набирать библиотеки из папки вручную или через cmd, кому нужен список библиотек версии 1_68 для вставки во вкладку "Дополнительные библиотеки" новой версии — вот он:
Debug (Активный):
libboost_atomic-vc140-mt-gd-x32-1_68.lib
libboost_atomic-vc140-mt-gd-x64-1_68.lib
libboost_chrono-vc140-mt-gd-x32-1_68.lib
libboost_chrono-vc140-mt-gd-x64-1_68.lib
libboost_container-vc140-mt-gd-x32-1_68.lib
libboost_container-vc140-mt-gd-x64-1_68.lib
libboost_context-vc140-mt-gd-x32-1_68.lib
libboost_context-vc140-mt-gd-x64-1_68.lib
libboost_contract-vc140-mt-gd-x32-1_68.lib
libboost_contract-vc140-mt-gd-x64-1_68.lib
libboost_coroutine-vc140-mt-gd-x32-1_68.lib
libboost_coroutine-vc140-mt-gd-x64-1_68.lib
libboost_date_time-vc140-mt-gd-x32-1_68.lib
libboost_date_time-vc140-mt-gd-x64-1_68.lib
libboost_exception-vc140-mt-gd-x32-1_68.lib
libboost_exception-vc140-mt-gd-x64-1_68.lib
libboost_fiber-vc140-mt-gd-x32-1_68.lib
libboost_fiber-vc140-mt-gd-x64-1_68.lib
libboost_filesystem-vc140-mt-gd-x32-1_68.lib
libboost_filesystem-vc140-mt-gd-x64-1_68.lib
libboost_graph-vc140-mt-gd-x32-1_68.lib
libboost_graph-vc140-mt-gd-x64-1_68.lib
libboost_iostreams-vc140-mt-gd-x32-1_68.lib
libboost_iostreams-vc140-mt-gd-x64-1_68.lib
libboost_locale-vc140-mt-gd-x32-1_68.lib
libboost_locale-vc140-mt-gd-x64-1_68.lib
libboost_log_setup-vc140-mt-gd-x32-1_68.lib
libboost_log_setup-vc140-mt-gd-x64-1_68.lib
libboost_log-vc140-mt-gd-x32-1_68.lib
libboost_log-vc140-mt-gd-x64-1_68.lib
libboost_math_c99f-vc140-mt-gd-x32-1_68.lib
libboost_math_c99f-vc140-mt-gd-x64-1_68.lib
libboost_math_c99l-vc140-mt-gd-x32-1_68.lib
libboost_math_c99l-vc140-mt-gd-x64-1_68.lib
libboost_math_c99-vc140-mt-gd-x32-1_68.lib
libboost_math_c99-vc140-mt-gd-x64-1_68.lib
libboost_math_tr1f-vc140-mt-gd-x32-1_68.lib
libboost_math_tr1f-vc140-mt-gd-x64-1_68.lib
libboost_math_tr1l-vc140-mt-gd-x32-1_68.lib
libboost_math_tr1l-vc140-mt-gd-x64-1_68.lib
libboost_math_tr1-vc140-mt-gd-x32-1_68.lib
libboost_math_tr1-vc140-mt-gd-x64-1_68.lib
libboost_prg_exec_monitor-vc140-mt-gd-x32-1_68.lib
libboost_prg_exec_monitor-vc140-mt-gd-x64-1_68.lib
libboost_program_options-vc140-mt-gd-x32-1_68.lib
libboost_program_options-vc140-mt-gd-x64-1_68.lib
libboost_random-vc140-mt-gd-x32-1_68.lib
libboost_random-vc140-mt-gd-x64-1_68.lib
libboost_regex-vc140-mt-gd-x32-1_68.lib
libboost_regex-vc140-mt-gd-x64-1_68.lib
libboost_serialization-vc140-mt-gd-x32-1_68.lib
libboost_serialization-vc140-mt-gd-x64-1_68.lib
libboost_signals-vc140-mt-gd-x32-1_68.lib
libboost_signals-vc140-mt-gd-x64-1_68.lib
libboost_stacktrace_noop-vc140-mt-gd-x32-1_68.lib
libboost_stacktrace_noop-vc140-mt-gd-x64-1_68.lib
libboost_stacktrace_windbg_cached-vc140-mt-gd-x32-1_68.lib
libboost_stacktrace_windbg_cached-vc140-mt-gd-x64-1_68.lib
libboost_stacktrace_windbg-vc140-mt-gd-x32-1_68.lib
libboost_stacktrace_windbg-vc140-mt-gd-x64-1_68.lib
libboost_system-vc140-mt-gd-x32-1_68.lib
libboost_system-vc140-mt-gd-x64-1_68.lib
libboost_test_exec_monitor-vc140-mt-gd-x32-1_68.lib
libboost_test_exec_monitor-vc140-mt-gd-x64-1_68.lib
libboost_thread-vc140-mt-gd-x32-1_68.lib
libboost_thread-vc140-mt-gd-x64-1_68.lib
libboost_timer-vc140-mt-gd-x32-1_68.lib
libboost_timer-vc140-mt-gd-x64-1_68.lib
libboost_type_erasure-vc140-mt-gd-x32-1_68.lib
libboost_type_erasure-vc140-mt-gd-x64-1_68.lib
libboost_unit_test_framework-vc140-mt-gd-x32-1_68.lib
libboost_unit_test_framework-vc140-mt-gd-x64-1_68.lib
libboost_wave-vc140-mt-gd-x32-1_68.lib
libboost_wave-vc140-mt-gd-x64-1_68.lib
libboost_wserialization-vc140-mt-gd-x32-1_68.lib
libboost_wserialization-vc140-mt-gd-x64-1_68.lib
Это для версии 1_68. Список, как видите очень расширился!

Этот комментарий был удален автором.

Так как предоставленные автором имена библиотек тяжело модифицировать под имена библиотек новых версий libboost (так как в имена добавлена приставка x32 или x64, в именах библиотек автора их нет, следовательно в блокноте уже тяжело как-то изменять. ), я выложил список новых библиотек. Я не хочу тут спамить, чтобы получить список для Release, зайдите в блокнот, скопируйте все библиотеки для Debug (Активный), я выкладывал в предыдущем комментарии ,перейдите в меню -> "Правка" -> "Заменить". В поле "Что" пишите "-gd" (без кавычек), поле "Чем" оставьте пустым. Потом нажимаете "Заменить всё". Получившийся список имён библиотек копируете в "Дополнительные библиотеки" в режиме Release.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *