Как установить boost c на visual studio 2019
I search a lot, but I didn't find any useful step by step guide to install and configure and build boost in Windows 10 with VS 2019 Preview. Can anyone of you guide me through this task?
I have download boost 1.70 but when I execute bootstrap.bat it gives the following message:
this file have the following text in itself:
When I try the boost 1.68, I could run bootstrap.bat successfully, but when I execute b2.exe it gives me the following message:
2 Answers 2
You cannot currently build Boost with Preview, but you can with the regular 2019 just released. I had this same issue. It takes like ten minutes to install 2019 regular with required features. You can have both at the same time.
For future reference, here are my notes for how to build boost on windows with MPI and python support.
Building Boost on Windows with VS 2019
Need Visual Studio 2019 Non-Preview, any version, all the C++ and Windows SDK stuff.
Note: temporarily uninstall the C++ and Windows SDK stuff from VS Preview if you have both. Ideally have only one compiler on the system so Boost.build doesn't get confused.
Next, assuming you have git-for-windows installed, execute
the boost superproject repo to an UNPROTECTED folder called /Boost/ (must be unprotected!)
Now your in /Boost/boost . Checkout the developer branch (get recent updates) with
Where -f forces updates.
Run bootstrap inside the boost folder using Visual Studio Developer Console. To activate this console, either use the Windows search bar "Type here to search" for "Developer Command Prompt", or open visual studio and use the search bar at the top.
Note: If you are getting access errors, you have to activate administrative visual studio developer console. Open cmd in administrative mode and run VsDevCmd.bat, the file that activates the visual studio developer console.
If you haven't already done so, install Microsoft MPI by installing both files available for latest version of Microsoft MPI. Its known to be working with Version 10, requires installing BOTH the SDK (an .msi file) and non-SDK (a .exe file) files to the DEFAULT locations. Do not modify these locations.
Then modify project-config.jam in the /Boost/boost/ directory to the following:
(btw, there is white space [a regular space] after each line, even empty lines)
The last two lines assume you want mpi and python support.
Now open Visual Studio Developer Console and navigate (cd) to the boost folder /Boost/boost . Since we're using the Visual C++ compiler from VS 2019, apparently we don't need to b2 install anything (see sections 5.1 - 5.2 in the Getting Started guide). Then the only thing we need next is to run
Опишем, как установить библиотеку Boost для среды Visual Studio.
Шаг 1. Скачиваем исходные коды
Как правило, используется последняя версия библиотеки Boost. Если вам нужна более ранняя версия, то следует учитывать, что компилятор VS 2012 поддерживается с версии 1.52. Другими словами, вы не сможете использовать версию более раннюю чем 1.52 на VS 2012. Придётся установить более раннюю версию VS.
Я буду выполнять установку библиотеки в папку 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
Теперь проект успешно компилируется:
6 комментариев:
Серьезность Код Описание Проект Файл Строка
Ошибка 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.
как правильно установить буст
Я скачал 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 и снова открыть ее, чтобы изменения вступили в силу.
Другие решения
Привет, ребята, я понял это:
2- из командной строки или Visual Studio 2015-> Инструменты Visual Studio-> Командная строка разработчика для MS2015 (запустите ее с правами администратора)
3-кд C: \ boost_1_61_0
поэтому создаются новые файлы: b2.exe и bjam.exe в корневой папке.
Теперь мы собираем 64-разрядную версию библиотеки Boost:
В корневом каталоге создается новая папка «Stage», внутри которой находится папка с именем x64, внутри которой находится папка «lib» (.lib files). процесс занимает несколько минут (около 20 минут)
Теперь мы собираем версию для x86:
- подождите, пока это не будет сделано.
теперь у нас есть две версии x64 и win32, но корневая папка слишком большая, около 5,3 гигабайта.
Теперь мы устанавливаем эти две библиотеки в «C: \ Boost», а затем очищаем, удаляя папку «C: \ boost_1_61_0»:
- Я добавляю install и изменяю имя папки от рабочей области до «C: \ Boost \ X64», когда это делается, создается новая папка «C: \ Boost», которая содержит папку include и папку x64, которая содержит файлы lib.
- когда это будет сделано, удалите папку с именем lib внутри: C: \ Boost \
- время почистить и освободить память:
- удалите папку с отверстиями: C: \ Boost_1_61_0, потому что она нам больше не нужна
** как добавить буст в мой проект ?:
теперь включаемые файлы готовы.
если мой проект x86:
перейдите по ссылке: компоновщик-> Общие-> Дополнительные каталоги библиотек-> Изменить-> Добавить новую папку-> C: \ Boost \ win32 \ Lib
если мой проект x64:
компоновщик-> дополнительные каталоги библиотек-> редактировать-> добавить новую папку-> C: \ Boost \ x64 \ Lib
Я хотел бы, чтобы этот пост был полезен всем, кто не смог его установить.
How can I Install boost in Windows 10 with VS 2019 Preview
I search a lot, but I didn’t find any useful step by step guide to install and configure and build boost in Windows 10 with VS 2019 Preview. Can anyone of you guide me through this task?
I have download boost 1.70 but when I execute bootstrap.bat it gives the following message:
this file have the following text in itself:
When I try the boost 1.68, I could run bootstrap.bat successfully, but when I execute b2.exe it gives me the following message:
2 Answers 2
You cannot currently build Boost with Preview, but you can with the regular 2019 just released. I had this same issue. It takes like ten minutes to install 2019 regular with required features. You can have both at the same time.
For future reference, here are my notes for how to build boost on windows with MPI and python support.
Building Boost on Windows with VS 2019
Need Visual Studio 2019 Non-Preview, any version, all the C++ and Windows SDK stuff.
Note: temporarily uninstall the C++ and Windows SDK stuff from VS Preview if you have both. Ideally have only one compiler on the system so Boost.build doesn’t get confused.
Next, assuming you have git-for-windows installed, execute
the boost superproject repo to an UNPROTECTED folder called /Boost/ (must be unprotected!)
Now your in /Boost/boost . Checkout the developer branch (get recent updates) with
Where -f forces updates.
Run bootstrap inside the boost folder using Visual Studio Developer Console. To activate this console, either use the Windows search bar "Type here to search" for "Developer Command Prompt", or open visual studio and use the search bar at the top.
Note: If you are getting access errors, you have to activate administrative visual studio developer console. Open cmd in administrative mode and run VsDevCmd.bat, the file that activates the visual studio developer console.
If you haven’t already done so, install Microsoft MPI by installing both files available for latest version of Microsoft MPI. Its known to be working with Version 10, requires installing BOTH the SDK (an .msi file) and non-SDK (a .exe file) files to the DEFAULT locations. Do not modify these locations.
Then modify project-config.jam in the /Boost/boost/ directory to the following:
(btw, there is white space [a regular space] after each line, even empty lines)
The last two lines assume you want mpi and python support.
Now open Visual Studio Developer Console and navigate (cd) to the boost folder /Boost/boost . Since we’re using the Visual C++ compiler from VS 2019, apparently we don’t need to b2 install anything (see sections 5.1 — 5.2 in the Getting Started guide). Then the only thing we need next is to run
Как я могу установить boost в Windows 10 с VS 2019 Preview
Я много искал, но не нашел ни одного полезного пошагового руководства по установке, настройке и сборке boost в Windows 10 с VS 2019 Preview. Кто-нибудь из вас может помочь мне выполнить эту задачу?
этот файл содержит следующий текст:
Я подозреваю, что вы не строите boost через Visual Studio tools Command Prompt окна.
В настоящее время вы не можете построить Boost с Preview, но вы можете сделать это с помощью только что выпущенного обычного 2019 года. У меня была такая же проблема. Установка штатного 2019 с необходимыми функциями занимает около десяти минут. Вы можете иметь оба одновременно.
Для дальнейшего использования, вот мои заметки о том, как повысить поддержку Windows с поддержкой MPI и python.
Сборка Boost на Windows с VS 2019
Нужна Visual Studio 2019 без предварительного просмотра, любая версия, все C++ и Windows SDK.
* Примечание: временно удалите содержимое C++ и Windows SDK из Preview, если у вас есть оба. В идеале один компилятор, чтобы Boost.build не запутался). *
Далее, если у вас установлен git -f или-windows, выполните
ускоренное репроектирование суперпроекта в незащищенную папку с именем /Boost/ (должно быть незащищено!)
Теперь ваш в /Boost/boost . Оформите ветку разработчика (получите последние обновления) с
Где -f форсирует обновления.
Запустите загрузчик внутри папки boost, используя консоль разработчика Visual Studio. Чтобы активировать эту консоль, используйте панель поиска Windows "Введите здесь для поиска" для "Командная строка разработчика" или откройте Visual Studio и используйте панель поиска вверху.
Примечание. Если вы получаете ошибки доступа, вам необходимо активировать административную консоль разработчика Visual Studio. Откройте cmd в административном режиме и запустите VsDevCmd.bat, файл, который активирует консоль разработчика Visual Studio.
Если вы еще этого не сделали, установите Microsoft MPI, установив оба файла, доступные для последней версии Microsoft MPI. Известно, что он работает с версией 10, требует установки ОБА файлов SDK (MSI файл) и файлов не-SDK (EXE файл) в каталог ПО УМОЛЧАНИЮ. Не изменяйте эти места.
Затем измените project-config.jam в каталоге /Boost/boost/ следующим образом:
(кстати, после каждой строки есть пробел [обычный пробел], даже пустые строки)
Последние две строки предполагают, что вам нужна поддержка mpi и python.
Теперь откройте Visual Studio Developer Console и перейдите (cd) в папку boost /Boost/boost . Поскольку мы используем компилятор Visual C++ из VS 2019, очевидно, нам не нужно ничего b2 install (см. Разделы 5.1 — 5.2 в руководстве по началу работы). Тогда единственное, что нам нужно дальше, это бежать
Русские Блоги
Версия vs, используемая в этой статье, — Visual Studio Professional 2019, а код библиотеки boost — boost_1_70_0.
Вторая часть, компиляция
В настоящее время большинство способов компиляции надстроечных библиотек в Интернете — это vs2017, vs2015 и vs2013, и сейчас сложно сказать больше.
На первом шаге, в соответствии с онлайн-шагами, запустите bootstrap.bat в cmd, появится результат: cl не является ни внутренней, ни внешней командой, есть много решений этой проблемы в сети, добавьте среду напрямую переменная.
Необходимо обратить внимание на выбор пути в переменной среды, путь к этой статье: VC \ Tools \ MSVC \ 14.21.27702 \ bin \ Hostx64 \ x64
Вторым шагом является запуск ошибки bootstrap.bat. Проверьте bootstrap.log и найдите, что отсутствует ctype.h. Чтобы решить эту проблему, добавьте C: \ Windows \ System32 в переменную среды, а затем перезапустите Просто компьютер.
Третий шаг — успешное выполнение bootstrap.bat. Интерфейс выглядит следующим образом:
Каталог папок после компиляции:
Кроме того, в Интернете упоминается, что для компиляции VS можно использовать командную строку x64 Native Tools.
По умолчанию эта функция не установлена в vs2019. Ее необходимо изменить в загрузчике, чтобы добавить элементы для загрузки.
Переключитесь на «однокомпонентный», а затем продолжайте смотреть вниз, были обнаружены средства генерации MSVC v142-VS 2019 C ++ x64 / x86 (v14.21), отметьте его, загрузите и установите ,
Третья часть, генерация
Создать код сценария x86
Использование Boost.Test для C++ в Visual Studio
В Visual Studio 2017 и более поздних версиях адаптер теста Boost.Test интегрирован в среду IDE 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 integrate install , чтобы настроить в 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 содержит пример метода теста. В этот файл можно включить собственные файлы заголовков и записать тесты для приложения.
Этот тестовый файл также использует макросы для определения новой подпрограммы main для конфигураций тестов. Если выполнить сборку проекта сейчас, выводится ошибка LNK2005, например "_main уже определен в main.obj".
Создание и изменение конфигураций сборки
Чтобы создать конфигурацию теста, в строке меню выберите Сборка > Диспетчер конфигураций. В диалоговом окне Диспетчер конфигураций выберите в раскрывающемся списке Активная конфигурация решения пункт Создать. В диалоговом окне Создание конфигурации решения введите имя, например "Debug UnitTests". В поле Копировать параметры из выберите Отладка, а затем нажмите кнопку ОК.
Выберите конфигурацию решения Debug UnitTests, а затем создайте проект, чтобы обозреватель тестов смог обнаружить этот метод.
При условии, что создаваемое имя конфигурации начинается со слова "Debug" или "Release", соответствующие библиотеки Boost.Test подбираются автоматически.
Создание отдельного тестового проекта
Во многих случаях для тестов проще использовать отдельный проект. Вам не нужно будет создавать специальную конфигурацию теста для своего проекта. Или исключите тестовые файлы из сборок отладки и выпуска.
Создание отдельного тестового проекта
В обозревателе решений щелкните узел решения правой кнопкой мыши и выберите пункты Добавить > Новый проект.
В диалоговом окне Добавить новый проект выберите C++ , Windows и Консоль в раскрывающихся списках фильтров. Выберите шаблон Консольное приложение и нажмите кнопку Далее.
Присвойте проекту имя и нажмите кнопку Создать.
Удалите функцию main из CPP-файла.
1. Чтобы изменить файл проекта, сначала выгрузите его. В обозревателе решений щелкните узел проекта правой кнопкой мыши и выберите пункт Выгрузить проект. Затем щелкните правой кнопкой мыши узел проекта и выберите Изменить .vcxproj.
2. Добавьте две строки в группу свойств Глобальные, как показано ниже:
В. Сохраните и закройте *VCXPROJ-файл и затем перезагрузите проект.
Д. Разверните узел C/C++ > Создание кода, а затем выберите элемент Библиотека времени выполнения. Выберите /MTd в качестве статической библиотеки времени выполнения для отладки или /MT в качестве статической библиотеки времени выполнения для выпуска.
f. Разверните узел Компоновщик > Система. Убедитесь, что для параметра SubSystem задано значение Консоль.
Добавление директив include
Можно использовать автономную библиотеку с:
Или использовать версию с одним заголовком с:
Затем определите BOOST_TEST_MODULE .
Приведенного ниже примера достаточно для обнаружения теста в обозревателе тестов.
Написание и запуск тестов
Все готово к написанию и выполнению тестов Boost. Сведения о макросах тестов см. в документации по библиотеке Boost Test. Сведения об обнаружении, выполнении и группировании тестов с помощью обозревателя тестов см. в статье Выполнение модульных тестов с помощью обозревателя тестов.
Сборка и установка библиотеки OpenCV. Использование библиотеки в среде Microsoft Visual Studio
Прежде всего, создадим новое Решение (Solution), в которое включим первый Проект (Project) данной лабораторной работы. Последовательно выполните следующие шаги:
- Запустите приложение Microsoft Visual Studio 2010.
- В меню File выполните команду NewProject….
- Как показано на рис. 6.11, в диалоговом окне New Project в типах проекта выберите Win32, в шаблонах Win32 Console Application, в поле Name введите название проекта (для каждого приложения будет использовано свое название), в поле Solution Name – название решения 01_OpenCV, в поле Location укажите путь к папке с лабораторными работами. Нажмите OK.
Далее создадим заготовку функции main() с параметрами командной строки. Как правило, в разрабатываемых приложениях в качестве параметров будет приниматься название изображения или видео, а также параметры тех или иных алгоритмов.
3.2. Настройка свойств проекта
Процесс настройки свойств проекта сводится к выполнению трех действий:
3.3. Подключение заголовочных файлов в исходном коде приложения
Чтобы использовать функции библиотеки OpenCV при разработке собственных приложений, достаточно подключить заголовочный файл opencv.hpp , содержащий подключение большинства установленных модулей библиотеки, и пространство имен cv , в которое заключены все функции библиотеки.
Если заранее известно, что в процессе разработки будет использован функционал конкретного набора модулей, то можно подключить только заголовочные файлы соответствующих модулей, например:
3.4. Компиляция и запуск программы. Возможные проблемы и пути их решения
Чтобы протестировать корректность настроек, подключите заголовочные файлы библиотеки OpenCV в файл main.cpp в соответствии с указаниями раздела 3.3 и скомпилируйте программу посредством нажатия клавиши F7, или используя пункт Build главного меню.
В процессе компиляции могут возникнуть следующие проблемы:
- Ошибка открытия заголовочного файла. Примерный текст ошибки приведен ниже. Суть проблемы состоит в том, что указаны неправильные пути до подключаемых заголовочных файлов библиотеки. Решение – проверить в настройках проекта корректность путей до заголовочных файлов (см. указания раздела 3.2).
Когда программа скомпилировалась, запустите ее. Для этого можно нажать сочетание клавиш Ctrl+F5, либо воспользоваться пунктом Start Without Debugging главного меню. При попытке запуска может возникнуть ошибка, показанная на рисунке (рис. 6.15).
Проблема в том, что при исполнении выполняется поиск dll-файлов библиотеки OpenCV, и среда не находит указанные бинарные файлы. Существует два варианта решения данной проблемы:
- Задать в переменной окружения PATH пути до dll-файлов библиотеки OpenCV. В зависимости от способа установки библиотеки пути необходимо указать тот или иной путь (см. разделы 2.2 или 2.3).
- Скопировать указанный dll-файл к исполняемым файлам программы. Очевидно, что такой dll-файл будет не единственный, поэтому требуется последовательно копировать запрашиваемые файлы. Заметим, что если библиотека OpenCV собрана с поддержкой параллелизма, то также потребуется скопировать dll-файлы библиотеки Intel Threading Building Blocks ( tbb_debug.dll, tbbmalloc_debug.dll или tbb.dll, tbbmalloc.dll ), при условии, что TBB не установлена на рабочей машине, либо переменная окружения PATH не содержит путь до dll-файлов, входящих в ее состав.
Вопросы и ответы
При прохождении теста 1 в нем оказались вопросы, который во-первых в 1 лекции не рассматривались, во-вторых, оказалось, что вопрос был рассмаотрен в самостоятельно работе №2. Это значит, что их нужно выполнить перед прохождением теста? или это ошибка?
В описании говорится, что он "делает изображение более чётким, потому что, как видно из конструкции фильтра, в однородных частях изображение не изменяется, а в местах изменения яркости это изменение усиливается".
Что вижу я в конструкции фильтра (скорее всего ошибочно): F(x, y) = 2 * I(x, y) — 1/9 I(x, y) = 17/9 * I(x, y), где F(x, y) — яркость отфильтрованного пикселя, а I(x, y) — яркость исходного пикселя с координатами (x, y). Что означает обычное повышение яркости изображения, при этом без учета соседних пикселей (так как их множители равны 0).
Объясните, пожалуйста, как данный фильтр может повышать четкость изображения?
Скопируйте файлы из директории
C:\Programm Files\TaoFramework\lib
в папку
C:\Windows\System32
Итак, сейчас мы на основе тестового приложения проверим работоспособность библиотеки Tao: сначала мы подключим ее к проекту, затем проведем инициализацию библиотеки и инициализацию OpenGL и в качестве проверки визуализируем сферу с помощью библиотеки FreeGlut.
Сначала создайте новый проект, в качестве шаблона установив приложение Windows Forms. Назовите его Tao-OpenGL-Initialization-Test.
- Tao.OpenGL.dll — отвечает за реализация библиотеки OpenGL.
- Tao.FreeGlut.dll — отвечает за реализацию функций библиотеки Glut. Мы будем ее использовать для инициализации рендера , а так же для различных других целей.
- Tao.Platform.Windows.dll — отвечает за поддержку элементов непосредственно для визуализации на платформе Windows.
Теперь вернитесь к конструктору диалогового окна и перейдите к окну Toolbox (Панель элементов). Щелкните правой кнопкой на вкладке «Общие», и в раскрывшемся контекстном меню выберите пункт «Выбрать элементы» (Select elements), как показано на рисунке 5.
Рисунок 5. Выбор опции добавления элемента.
В открывшемся окне найдите элемент SimpleOpenGLControl и установите возле него галочку, как показано на рисунке 6. Затем нажмите ОК.
Рисунок 6. Подключения к панели элементов SimpleOpenGLControl, предназначенного для визуализации графики в окне.
Теперь данный элемент станет доступным для размещения на форме приложения. Перетащите элемент на форму и разместите так, как показано на рисунке 7. Справа от размещенного элемента установите 2 кнопки – «Визуализировать» и «Выйти».
Рисунок 7. Расположение элементов на форме.
Теперь выделите элемент simpleOpenGlControl1, расположенный на форме, и перейдите к его свойствам. Измените параметр name на значение "AnT". Далее во всех главах элементы simpleOpenGlControl мы будем называть AnT (рис. 8).
Рисунок 8. Переименовывание элемента.
Теперь нам необходимо инициализировать работу OpenGl.
Сначала мы в конструкторе класса должны инициализировать работу элемента AnT:
Снова перейдите к конструктору и сделайте двойной щелчок левой клавишей мыши на форме – создастся функция обработчик события загрузки формы.
В ней мы поместим код инициализации OpenGl. Подробное описание того, что делает этот код, мы рассмотрим в следующих главах, а сейчас мы только протестируем работу библиотек OpenGL и FreeGLUT.
На окне мы создали 2 кнопки. Обработчик кнопки выйти будет выглядеть следующим образом:
Обработчик кнопки «Визуализировать» будет содержать код, реализующий визуализацию сеточного каркаса сферы (за отрисовки трехмерной сферы будет отвечать библиотека FreeGLUT). Код, который будет размещен в данной функции, отвечает за разные технические аспекты визуализации, с которыми мы познакомимся в следующих главах.
Откомпилируйте и запустите приложение.
В следующей главе мы познакомимся с инициализацией OpenGL в режиме двухмерной проекции, а также начнем учиться визуализации различных примитивов, напишем приложение, реализующее рисование графиков функции, познакомимся с работой с цветом и поуправляем разложением спектра цветов на треугольнике.
Примечание
Если у вас возникли проблемы с запуском приложений, обратите внимание на следующие нюансы:
Если вы используете ОС x64, первым делом попробуйте изменить тип проекта на x86. (Указать в Visual Studio).
Сергей Солонько: «System.DllNotFoundException: Не удается загрузить DLL „freeglut.dll“: Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E) — решается методом копирования из папки C:\Programm Files\TaoFramework\lib в папку C:\Windows\System32.»
Clandestin: «У меня в Windows 7 копирование в C:\Windows\System32 не помогло. Зато помогло копирование непосредственно в папку C:\Windows.»
KsenoByte: «Предлагаю всем решение проблемы с SimpleOpenGLControl в Visual Studio 2010.
Для того чтобы добавить в Панель Элементов (Toolbox) элемент SimpleOpenGLControl, необходимо следующее:
1. Нажимаем правой кнопкой по вкладке «Общие» в Панели Элементов и выбираем «Выбор Элементов» (за тавтологию нижайше извиняюсь).
Рисунок 1. Панель элементов -> Выбор элементов.
2. В открывшемся окне обнаруживаем отсутствие SimpleOpenGLControl.
3. Нажимаем кнопку «Обзор» и находим файл библиотеки C:\Program Files\TaoFramework\bin\Tao.Platform.Windows.dll.
In Visual Studio 2017 and later, the Boost.Test test adapter is integrated into the Visual Studio IDE. It's a component of the Desktop development with C++ workload.
If you don't have the Desktop development with C++ workload installed, open Visual Studio Installer. Select the Desktop development with C++ workload, then choose the Modify button.
Install Boost
Boost.Test requires Boost! If you don't have Boost installed, we recommend that you use the Vcpkg package manager.
Follow the instructions at Vcpkg: a C++ package manager for Windows to install vcpkg (if you don't already have it).
Install the Boost.Test dynamic or static library:
Run vcpkg install boost-test to install the Boost.Test dynamic library.
Run vcpkg install boost-test:x86-windows-static to install the Boost.Test static library.
Run vcpkg integrate install to configure Visual Studio with the library and include paths to the Boost headers and binaries.
You have a choice in how to configure your tests within your solution in Visual Studio: You can include your test code in the project under test, or you can create a separate test project for your tests. Both choices have advantages and disadvantages.
Add tests inside your project
In Visual Studio 2017 version 15.6 and later, you can add an item template for tests into your project. Both the tests and your code live in the same project. You'll have to create a separate build configuration to generate a test build. And, you'll need to keep the tests out of your debug and release builds.
In Visual Studio 2017 version 15.5, no pre-configured test project or item templates are available for Boost.Test. Use the instructions to create and configure a separate test project.
Create a Boost.Test item
To create a .cpp file for your tests, right-click on the project node in Solution Explorer and choose Add > New Item.
In the Add New Item dialog, expand Installed > Visual C++ > Test. Select Boost.Test, then choose Add to add Test.cpp to your project.
The new Test.cpp file contains a sample test method. This file is where you can include your own header files and write tests for your app.
The test file also uses macros to define a new main routine for test configurations. If you build your project now, you'll see a LNK2005 error, such as "_main already defined in main.obj."
Create and update build configurations
To create a test configuration, on the menu bar, select Build > Configuration Manager. In the Configuration Manager dialog, open the dropdown under Active solution configuration and choose New. In the New Solution Configuration dialog, enter a name such as "Debug UnitTests". Under Copy settings from select Debug, and then choose OK.
Exclude the test code from your Debug and Release configurations: In Solution Explorer, right-click on Test.cpp and select Properties. In the Property Pages dialog, select All Configurations in the Configuration dropdown. Select Configuration Properties > General and open the dropdown for the Excluded From Build property. Select Yes, then choose Apply to save your changes.
To include the test code in your Debug UnitTests configuration, in the Property Pages dialog, select Debug UnitTests in the Configuration dropdown. Select No in the Excluded From Build property, then choose OK to save your changes.
Exclude the main code from your Debug UnitTests configuration. In Solution Explorer, right-click on the file that contains your main function and select Properties. In the Property Pages dialog, select Debug UnitTests in the Configuration dropdown. Select Configuration Properties > General and open the dropdown for the Excluded From Build property. Select Yes, then choose OK to save your changes.
Set the Solution Configuration to Debug UnitTests, then build your project to enable Test Explorer to discover the method.
As long as the configuration name you create starts with the words "Debug" or "Release", the corresponding Boost.Test libraries get picked up automatically.
Create a separate test project
In many cases, it's easier to use a separate project for your tests. You won't have to create a special test configuration for your project. Or, exclude test files from Debug and Release builds.
To create a separate test project
In Solution Explorer, right click on the solution node and choose Add > New Project.
In the Add a new project dialog, choose C++, Windows, and Console in the filter dropdowns. Select the Console App template, then choose Next.
Give the project a name and choose Create.
Delete the main function in the .cpp file.
If you're using the single-header or dynamic library version of Boost.Test, go to Add include directives. If you're using the static library version, then you have to do some additional configuration:
a. To edit the project file, first unload it. In Solution Explorer, right-click the project node and choose Unload Project. Then, right-click the project node and choose Edit .vcxproj.
c. Save and close the *.vcxproj file, and then reload the project.
d. To open the Property Pages, right-click on the project node and choose Properties.
e. Expand C/C++ > Code Generation, and then select Runtime Library. Select /MTd for debug static runtime library or /MT for release static runtime library.
f. Expand Linker > System. Verify SubSystem is set to Console.
g. Choose OK to close the property pages.
Add include directives
You can use the standalone library with:
Or, use the single-header version with:
Then, define BOOST_TEST_MODULE .
The following example is sufficient for the test to be discoverable in Test Explorer:
Write and run tests
You're now ready to write and run Boost tests. See the Boost test library documentation for information about the test macros. See Run unit tests with Test Explorer for information about discovering, running, and grouping your tests by using Test Explorer.
Читайте также: