Как установить boost c в Visual Studio 2019

Обновлено: 21.11.2024

Boost — это набор высококачественных библиотек, ускоряющих разработку на C++. Они включены в большинство дистрибутивов Linux, а некоторые из них уже являются частью стандартной библиотеки C++. В среде Windows их необходимо установить, чтобы воспользоваться ими.

Прежде чем мы начнем, вы можете прочитать мою предыдущую статью об установке компилятора C++ в Windows.

Установка

Поскольку я использую MinGW, я буду использовать gcc.

В это время вы можете пойти выпить чашечку кофе. Или, может быть, два.

По завершении компиляции перейдите по выбранному пути установки (осторожно! Это не та папка, в которую вы изначально распаковали исходный код). Вы найдете две папки: include и lib. Обе папки должны содержать файлы. Это означает, что вы закончили и готовы к этапу тестирования.

Если какая-либо из вышеупомянутых папок пуста, у нас проблемы. Общие проблемы возникают из-за выбора неправильного набора инструментов для компиляции, поэтому, если ваша папка lib пуста, попробуйте выбрать другой набор инструментов. Если ошибка не устранена, взгляните на вывод компиляции. Там должны быть показаны ошибки, особенно в последних строках вывода.

Тестирование

В среде IDE создайте файл с именем main.cpp и скопируйте в него следующий текст:

Пришло время компилировать (и связать)

Чтобы сообщить компилятору, где искать заголовки и библиотеки, необходимо выполнить следующие шаги. Обычно их можно выполнить, щелкнув правой кнопкой мыши проект и выбрав Свойства или Параметры.

Добавьте следующий путь в список включений:

Добавьте следующий путь в список дополнительных каталогов библиотеки

Важно: если вы используете Netbeans, вы должны ввести только /installation/path/lib (вы должны опустить C:). По очень странной причине Netbeans добавляет косую черту в начале параметра /L, используемого для компиляции (только когда он начинается с C:), что приводит к неизвестному пути. Это может быть исправлено в более поздних версиях.

Если вы используете компилятор gnu (то есть Cygwin или MinGW), вы также должны добавить определенную библиотеку в компоновщик. Если вы используете Microsoft Visual Studio, вы можете пропустить этот шаг, потому что он включает так называемую поддержку автоматического связывания. Но в моем случае мне нужно добавить следующую библиотеку в список моих библиотек, чтобы компоновщик работал без нареканий:

Это имя файла состоит из:

  • Стандартный префикс lib. DLL не используют его.
  • Имя библиотеки boost_regex.
  • Набор инструментов, использованный для его компиляции, в моем случае mgw47, то есть MinGW версии 4.7.
  • Тег многопоточности mt, указывающий, поддерживает ли библиотека многопоточность.
  • Тег ABI, который может быть: d для отладки, s для статической компоновки или g, y, p, которые не рассматриваются в этом тексте.
  • Тег версии.
  • Расширение, которое может быть .lib или .a.

Вы готовы. Создайте программу.

Пора выполнять

Программа, которую вы только что скомпилировали (и связали), может анализировать текстовый файл в поисках строки, начинающейся с текста «Subject:». Итак, чтобы протестировать его, скопируйте и вставьте следующий текст в пустой текстовый файл и назовите его test.txt (сохраните его в папке, где находится ваш файл .exe):

Теперь из командной строки введите:

Если все сделано правильно, вы должны увидеть следующий текст:

Заключение

На этом этапе Boost должен быть готов на вашем компьютере с Windows. Я предлагаю вам прочитать об этой замечательной библиотеке, так как она может значительно облегчить вам жизнь.

Библиотеки Boost — одни из самых известных в мире C++.

Они содержат множество функций, но их не так просто использовать или даже понять.

Прежде всего, давайте попробуем установить его в нашу любимую операционную систему Windows 10.

И протестируйте его с помощью Visual Studio 2017 и Visual Studio 2019.

Готовы? Давайте сделаем это в этом руководстве по установке Boost для Windows 10.

Прежде всего

    (не стесняйтесь использовать Visual Studio 2019, больше информации в этом руководстве) с двоичными файлами (boost_1_71_0-msvc-14.1-64.exe)

Обратите внимание на версию 14.1, которая соответствует MSVC 141, чтобы использовать ее с MSVC 2017.

Для MSVC 2019 сделайте то же самое, но с версией 14.2, что связано с MSVC 142, и загрузите версию Boost 1.77.0.

Настройка библиотек Boost

Скачивание и установка библиотек Boost

Библиотеки Boost обычно доступны напрямую, без создания чего-либо (только путем включения заголовков).

Но некоторые библиотеки необходимо создать, прежде чем их можно будет использовать.

Это относится, например, к библиотекам Boost.Python или Boost.Regex.

Эти библиотеки можно собрать самостоятельно, но, честно говоря, документация Boost не совсем ясна, а некоторые ссылки даже не работают.

Поэтому, чтобы избежать головной боли с неба, мы собираемся использовать двоичные файлы, загруженные непосредственно с SourceForge (ссылка выше).

Действительно, в ваших реестрах Windows ничего не изменится, только будет создан новый каталог с некоторыми файлами внутри.

Поэтому после загрузки исполняемого файла Windows покажет вам синее окно с сообщением о том, что это неопознанное приложение.

Нажмите "Подробнее" в конце этого сообщения, чтобы появилась кнопка "Выполнить в любом случае".

Для MVSC 2017 установите его в следующем месте:

Для MVSC 2019 установите его в следующем месте:

В этом каталоге теперь вы можете увидеть еще один с именем lib64-msvc-14.1/ (для MSVC 2017) или lib64-msvc-14.2 (для MSVC 2019), в котором есть встроенные библиотеки, и все это в среде x64.< /p>

Создание движка Boost.Build (b2) (дополнительная функция для этого руководства)

Если вы хотите создавать библиотеки из Boost по-своему, вам придется использовать инструмент Boost.Build.

Раньше он назывался bjam, а теперь называется b2.

Таким образом, эти два инструмента совершенно одинаковы, но последний представляет собой новую версию, используемую с Boost.Build.

При загрузке Boost с официального сайта b2 не устанавливается.

Вы должны сделать это самостоятельно.

На самом деле это довольно просто.

Откройте консоль из каталога Boost (в зависимости от вашей версии MSVC 141 или 142):

Затем введите следующую команду:

И через несколько секунд на вашей консоли появится это сообщение:

В том же каталоге теперь можно увидеть инструмент b2.exe.

Нам это пока не нужно, просто оставьте на будущее.

Переменные среды для Boost

Нам нужно установить переменные среды.

Поэтому добавьте 2 следующих пути для MSVC 2017:

  • C:\soft\boost_1_71_0\
  • C:\soft\boost_1_71_0\lib64-msvc-14.1\

И для MSVC 2019:

  • C:\soft\boost_1_77_0\
  • C:\soft\boost_1_77_0\lib64-msvc-14.2\

Если вы используете Windows 10, не так уж необычно использовать и Visual Studio.

Давайте настроим его на использование Boost.

Настройка Visual Studio

Набор инструментов платформы Visual Studio

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

Мы будем использовать Visual Studio 2017, поэтому версия двоичных файлов будет 14.1.

Или Visual Studio 2019 с двоичными файлами 14.2.

Действительно, каждая версия Visual Studio имеет собственный набор инструментов платформы.

  • Visual Studio 2017 имеет набор инструментов платформы 14.1 (часто msvc-141)
  • Visual Studio 2019 имеет набор инструментов платформы 14.2 (часто msvc-142)

Да, это довольно расплывчато и не так логично, но Miscrosoft — это Microsoft.

Поэтому загрузите версию, подходящую для вашей версии Visual Studio, иначе она не будет работать.

В любом случае, давайте настроим все эти инструменты.

Я позволю вам установить Visual Studio там, где вы хотите.

Нам просто нужно установить каталоги включения и библиотеки непосредственно из Visual Studio.

Начнем с создания консольного приложения Windows в Visual Studio.

Из Visual Studio > Файл > Новый проект > Установлено > Visual C++ > Рабочий стол Windows > Консольное приложение Windows.

Давайте назовем этот проект, например, так:

Настройка платформы проекта Visual Studio

Сейчас в первую очередь необходимо изменить платформу проекта в диспетчере конфигураций:

В Visual Studio > выберите файл BadprogTutorial.cpp > ​​Проект > Свойства BadprogTutorial. > В правом верхнем углу щелкните Диспетчер конфигурации. нажмите кнопку > Изменить платформу активного решения с x86 на x64 > Закрыть.

Тогда на страницах свойств BadprogTutorial вверху по центру измените платформу с Win32 на x64.

Затем нажмите OK.

Вы можете остаться в режиме отладки или изменить его на выпуск (для нашего руководства это ничего не изменит).

Настройка Visual Studio для включения путей для Boost

Сначала настроим включения.

В Visual Studio > выберите файл BadprogTutorial.cpp > ​​Проект > Свойства BadprogTutorial. > Свойства конфигурации > C/C++ > Общие > Дополнительные каталоги включения > Изменить > Добавьте следующую строку:

Установка путей библиотеки Visual Studio для Boost

Теперь нам нужно установить библиотеки.

То же самое, но с компоновщиком:

В Visual Studio > выберите файл BadprogTutorial.cpp > ​​Проект > Свойства BadprogTutorial. > Свойства конфигурации > Компоновщик > Общие > Дополнительные каталоги библиотек > Изменить > Добавьте следующую строку:

В Visual Studio 2017 и более поздних версиях тестовый адаптер Boost.Test интегрирован в интегрированную среду разработки Visual Studio. Это компонент настольной разработки с рабочей нагрузкой C++.

Если у вас не установлена ​​настольная разработка с рабочей нагрузкой C++, откройте установщик Visual Studio. Выберите рабочую нагрузку Разработка для настольных ПК с C++, затем нажмите кнопку Изменить.

Установить Boost

Boost.Test требует Boost! Если у вас не установлен Boost, мы рекомендуем использовать диспетчер пакетов Vcpkg.

Следуйте инструкциям на странице Vcpkg: менеджер пакетов C++ для Windows, чтобы установить vcpkg (если у вас его еще нет).

Установите динамическую или статическую библиотеку Boost.Test:

Запустите vcpkg install boost-test, чтобы установить динамическую библиотеку Boost.Test.

Запустите vcpkg install boost-test:x86-windows-static, чтобы установить статическую библиотеку Boost.Test.

Запустите vcpkg интегрировать установку, чтобы настроить Visual Studio с библиотекой и включить пути к заголовкам Boost и двоичным файлам.

У вас есть выбор, как настроить тесты в решении в Visual Studio: вы можете включить свой тестовый код в тестируемый проект или создать отдельный тестовый проект для своих тестов. Оба варианта имеют свои преимущества и недостатки.

Добавьте тесты в свой проект

В Visual Studio 2017 версии 15.6 и более поздних можно добавить в проект шаблон элемента для тестов. И тесты, и ваш код находятся в одном проекте. Вам нужно будет создать отдельную конфигурацию сборки для создания тестовой сборки. Кроме того, вам нужно исключить тесты из отладочных и выпускных сборок.

В Visual Studio 2017 версии 15.5 нет предварительно настроенных тестовых проектов или шаблонов элементов для Boost.Test. Используйте инструкции для создания и настройки отдельного тестового проекта.

Создать элемент Boost.Test

Чтобы создать файл .cpp для своих тестов, щелкните правой кнопкой мыши узел проекта в обозревателе решений и выберите "Добавить" > "Новый элемент".

В диалоговом окне «Добавить новый элемент» разверните «Установлено» > «Visual C++» > «Тест». Выберите Boost.Test, затем выберите Добавить, чтобы добавить Test.cpp в свой проект.

Новый файл Test.cpp содержит пример метода тестирования. В этот файл вы можете включить свои собственные заголовочные файлы и написать тесты для своего приложения.

В тестовом файле также используются макросы для определения новой основной процедуры для тестовых конфигураций. Если вы создадите свой проект сейчас, вы увидите ошибку LNK2005, такую ​​как «_main уже определено в main.obj».

Создание и обновление конфигураций сборки

Чтобы создать тестовую конфигурацию, в строке меню выберите Сборка > Диспетчер конфигураций. В диалоговом окне диспетчера конфигураций откройте раскрывающийся список в разделе Активная конфигурация решения и выберите Создать. В диалоговом окне «Новая конфигурация решения» введите имя, например «Отладка модульных тестов». В разделе «Копировать параметры из» выберите «Отладка», а затем нажмите «ОК».

Исключите тестовый код из конфигураций отладки и выпуска. В обозревателе решений щелкните правой кнопкой мыши файл Test.cpp и выберите пункт Свойства. В диалоговом окне «Страницы свойств» выберите «Все конфигурации» в раскрывающемся списке «Конфигурация». Выберите «Свойства конфигурации» > «Общие» и откройте раскрывающийся список для свойства «Исключено из сборки». Выберите «Да», затем нажмите «Применить», чтобы сохранить изменения.

Чтобы включить тестовый код в конфигурацию отладки UnitTests, в диалоговом окне Страницы свойств выберите Отладка UnitTests в раскрывающемся списке Конфигурация. Выберите «Нет» в свойстве «Исключено из сборки», затем нажмите «ОК», чтобы сохранить изменения.

Исключите основной код из конфигурации отладки UnitTests. В обозревателе решений щелкните правой кнопкой мыши файл, содержащий основную функцию, и выберите пункт Свойства. В диалоговом окне «Страницы свойств» выберите «Отладка модульных тестов» в раскрывающемся списке «Конфигурация». Выберите «Свойства конфигурации» > «Общие» и откройте раскрывающийся список для свойства «Исключено из сборки». Выберите «Да», затем нажмите «ОК», чтобы сохранить изменения.

Установите для параметра Конфигурация решения значение Отладка модульных тестов, а затем создайте проект, чтобы обозреватель тестов мог обнаружить метод.

Если имя создаваемой вами конфигурации начинается со слов "Отладка" или "Выпуск", соответствующие библиотеки Boost.Test подбираются автоматически.

Создайте отдельный тестовый проект

Во многих случаях проще использовать для тестов отдельный проект. Вам не нужно будет создавать специальную тестовую конфигурацию для вашего проекта. Или исключите тестовые файлы из отладочных и выпускных сборок.

Чтобы создать отдельный тестовый проект

В обозревателе решений щелкните правой кнопкой мыши узел решения и выберите "Добавить" > "Новый проект".

В диалоговом окне "Добавить новый проект" выберите C++, Windows и Консоль в раскрывающихся списках фильтров. Выберите шаблон консольного приложения, затем нажмите «Далее».

Дайте проекту имя и нажмите «Создать».

Удалите основную функцию в файле .cpp.

Если вы используете версию Boost.Test с одним заголовком или динамической библиотекой, перейдите к разделу Добавление директив включения.Если вы используете статическую версию библиотеки, вам необходимо выполнить дополнительную настройку:

а. Чтобы отредактировать файл проекта, сначала выгрузите его. В обозревателе решений щелкните правой кнопкой мыши узел проекта и выберите Выгрузить проект. Затем щелкните правой кнопкой мыши узел проекта и выберите «Редактировать .vcxproj».

<р>в. Сохраните и закройте файл *.vcxproj, а затем перезагрузите проект.

д. Чтобы открыть страницы свойств, щелкните правой кнопкой мыши узел проекта и выберите "Свойства".

<р>т.е. Разверните C/C++ > Генерация кода, а затем выберите Библиотека времени выполнения. Выберите /MTd для отладки статической библиотеки времени выполнения или /MT для выпуска статической библиотеки времени выполнения.

ж. Разверните Линкер > Система. Убедитесь, что для параметра SubSystem установлено значение Console.

г. Нажмите OK, чтобы закрыть страницы свойств.

Добавить директивы include

Вы можете использовать автономную библиотеку с:

Или используйте версию с одним заголовком с:

Затем определите BOOST_TEST_MODULE .

Следующего примера достаточно, чтобы тест можно было обнаружить в обозревателе тестов:

Написание и запуск тестов

Теперь вы готовы писать и запускать тесты Boost. Информацию о тестовых макросах см. в документации по тестовой библиотеке Boost. Информацию об обнаружении, запуске и группировании тестов с помощью обозревателя тестов см. в разделе Запуск модульных тестов с помощью обозревателя тестов.

Библиотеки Boost поставляются в виде исходного кода. Хотя большинство библиотек состоят исключительно из файлов заголовков, которые можно использовать напрямую, некоторые библиотеки требуют компиляции. Чтобы максимально упростить установку, доступен автоматизированный процесс установки на основе Boost.Build. Вместо того, чтобы проверять и компилировать отдельные библиотеки по отдельности, Boost.Build автоматически устанавливает полный набор. Boost.Build можно использовать со многими операционными системами и компиляторами, и он может скомпилировать каждую отдельную библиотеку на основе соответствующих файлов конфигурации.

Для автоматической установки библиотек Boost с помощью Boost.Build используется программа командной строки bjam. Библиотеки Boost поставляют эту программу как исходный код, а не как исполняемый файл. Поэтому для сборки и установки библиотек Boost требуется два шага. После загрузки библиотек Boost перейдите в каталог Boost и введите в командной строке следующие команды:

Введите bootstrap в Windows и ./bootstrap.sh на других платформах, таких как Linux, чтобы скомпилировать bjam . Сценарий автоматически ищет компилятор C для сборки bjam .

Затем введите bjam в Windows и ./bjam на других платформах, чтобы начать установку библиотек Boost.

Вы используете bootstrap только один раз для сборки bjam . Однако вам может понадобиться использовать bjam чаще, потому что bjam поддерживает параметры командной строки для создания библиотек Boost разными способами. Если вы запустите bjam без каких-либо параметров командной строки, будет использоваться конфигурация по умолчанию. Поскольку конфигурация по умолчанию не всегда подходит, вам следует знать наиболее важные параметры командной строки:

Параметры командной строки stage и install указывают, устанавливаются ли библиотеки Boost в подкаталог с именем stage или они становятся доступными для всей системы. Значение systemwide зависит от операционной системы. В Windows целевой каталог — C:\Boost ; в Linux это /usr/local . Целевой каталог также можно указать с помощью параметра --prefix. Запуск bjam без параметров командной строки всегда означает этап .

Если bjam вызывается без параметров командной строки, он ищет подходящий компилятор C++. Конкретный компилятор можно выбрать с помощью параметра --toolset. Чтобы выбрать Visual C++ 2013 в Windows, вызовите bjam с --toolset=msvc-12.0 . Чтобы выбрать компилятор GCC в Linux, используйте --toolset=gcc .

Опция командной строки --build-type определяет, какие типы сборки библиотек создаются. По умолчанию для этого параметра установлено значение Minimum , что означает, что создаются только выпускные сборки. Это может стать проблемой для разработчиков, которые хотят создавать отладочные сборки своих проектов с помощью Visual C++ или GCC. Поскольку эти компиляторы автоматически пытаются скомпоновать отладочные сборки библиотек Boost, будет отображаться сообщение об ошибке. В этом случае для параметра --build-type должно быть установлено значение Complete для создания как отладочных, так и выпускных сборок библиотек Boost. Это может занять довольно много времени, поэтому по умолчанию не установлено значение "полный".

Библиотеки Boost, которые необходимо скомпилировать, доступны в Windows с именами файлов, которые содержат номера версий и различные токены. Они позволяют, например, определить, была ли библиотека собрана как вариант отладки или вариант выпуска. libboost_atomic-vc120-mt-gd-1_56 — такое имя файла. Эта библиотека была создана с помощью Visual C++ 2013. Она относится к библиотекам Boost 1.56.0. Это отладочный вариант, который можно использовать в многопоточных программах. С помощью параметра командной строки --layout можно указать bjam генерировать другие имена файлов. Например, если вы установите для него значение system, тот же файл будет называться libboost_atomic.В Linux система является настройкой по умолчанию. Если вы хотите, чтобы имена файлов в Linux совпадали с именами файлов, сгенерированными в Windows по умолчанию, задайте для параметра --layout значение versioned .

Чтобы создать как отладочную, так и выпускную сборки библиотек Boost с помощью Visual C++ 2013 и установить их в каталог D:\Boost , введите следующую команду:

bjam --toolset=msvc-12.0 --build-type=complete --prefix=D:\Ускоренная установка

Чтобы собрать их в Linux и установить в каталог по умолчанию, введите следующую команду:

bjam --toolset=gcc --build-type=полная установка

Существует множество других параметров командной строки, которые можно использовать для подробного указания того, как компилировать библиотеки Boost. Взгляните на следующую команду:

bjam --toolset=отладочная версия msvc-12.0 link=static runtime-link=общая установка

Параметры отладки и выпуска вызывают создание как отладочных, так и выпускных сборок. link=static создает только статические библиотеки. runtime-link=shared указывает, что библиотека времени выполнения C++ динамически подключается, что является параметром по умолчанию для проектов в Visual C++ 2013.

Читайте также: