Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Visual Studio 2022 представляет собственный набор инструментов C++ для разработки подсистема Windows для Linux версии 2 (WSL 2). Этот набор инструментов теперь доступен в Visual Studio 2022 версии 17.0 или более поздней.
WSL 2 — это новая рекомендуемая версия подсистема Windows для Linux (WSL). Она позволяет повысить производительность файловой системы Linux, обеспечивает поддержку графического пользовательского интерфейса и полную совместимость системных вызовов. набор инструментов WSL 2 Visual Studio позволяет использовать Visual Studio для создания и отладки кода C++ в дистрибутивах WSL 2 без добавления подключения SSH. Вы уже можете создать и отладить код C++ в дистрибутивах WSL 1 с помощью собственного набора инструментов WSL 1 представленного в Visual Studio 2019 версии 16.1.
Набор инструментов WSL 2 в Visual Studio поддерживает Linux-проекты на основе CMake и MSBuild. CMake — это наша рекомендация для всех кроссплатформенных разработки C++ с Visual Studio. Мы рекомендуем CMake, так как он создает и отлаживать один и тот же проект на Windows, WSL и удаленных системах.
Для видеопрезентации информации по этой теме см. Видео: отладка C++ с дистрибутивами WSL 2 и Visual Studio 2022.
Базовые сведения о наборе инструментов WSL 2
Кроссплатформенная поддержка C++ в Visual Studio предполагает, что все исходные файлы возникают в файловой системе Windows. При выборе дистрибутива WSL 2 Visual Studio выполняет локальную команду rsync для копирования файлов из файловой системы Windows в файловую систему WSL. Для локальной копии rsync не требуется вмешательство пользователя. Это происходит автоматически, когда Visual Studio обнаруживает использование дистрибутива WSL 2. Дополнительные сведения о различиях между WSL 1 и WSL 2 см. в статье Сравнение WSL 2 и WSL 2.
Интеграция предустановок CMake в Visual Studio поддерживает набор инструментов WSL 2. Дополнительные сведения см. в статье Интеграция CMake Presets в Visual Studio и Visual Studio Code и Настройка и сборка с помощью CMake Presets в Visual Studio. В этой статье также приводятся более подробные сведения в разделе особенности продвинутых проектов WSL 2 и CMake.
Установка средств сборки
Установите средства, необходимые для сборки и отладки в WSL 2. Вы устанавливаете новую версию CMake с помощью дистрибутива двоичного файла CMake для Visual Studio на следующем шаге.
Установите дистрибутив WSL и WSL 2, следуя инструкциям в разделе Установка WSL.
В установщике Visual Studio убедитесь, что установлены инструменты C++ CMake для Linux. Для этого выберите Modify для версии Visual Studio. На вкладке "Отдельные компоненты" найдите средства C++ CMake для Linux и Mac и убедитесь, что выбраны и установлены. Этот компонент необходим для Visual Studio для обнаружения установок WSL.
Если предположить, что ваш дистрибутив использует
apt(в этом пошаговом руководстве используется Ubuntu), выполните следующие команды для установки необходимых средств сборки в дистрибутиве WSL 2:sudo apt update sudo apt install cmake g++ gdb make ninja-build rsync zipКоторые устанавливают:
- Компилятор C++
gdbCMakersynczip- Базового генератора системы сборки
Кроссплатформенная разработка CMake с помощью дистрибутива WSL 2
В этом пошаговом руководстве используется GCC и Ninja в Ubuntu. И Visual Studio 2022 версии 17.0 preview 2 или более поздней.
Visual Studio определяет проект CMake как папку с файлом CMakeLists.txt в корневом каталоге проекта. В этом пошаговом руководстве вы создадите новый шаблон CMake project с помощью шаблона Visual Studio CMake Project:
На экране Visual Studio Get started выберите Create новый проект.
Доступные параметры: клонирование репозитория, открытие проекта или решения, открытие локальной папки, создание проекта или продолжение без кода."::В текстовом поле Поиск шаблонов введите "cmake". Выберите тип CMake Project и выберите Next. Присвойте проекту имя и выберите расположение, а затем нажмите Создать.
Включите интеграцию предустановок CMake в Visual Studio. Выберите Сервис>Параметры>CMake>Общие. Установите флажок Отдавать предпочтение использованию предустановок CMake для настройки, сборки и тестирования, затем нажмите ОК. Кроме того, можно добавить
CMakePresets.jsonфайл в корневой каталог проекта. Дополнительные сведения см. в разделе Включение интеграции предварительных установок CMake.
В группе файлов конфигурации CMake выберите "Использовать предустановки CMake, если они доступны, иначе используется CMakeSettings.json".
Чтобы активировать интеграцию: в главном меню выберите Файл>Закрыть папку. Появится страница Начало работы. В разделе Открыть последние выберите папку, которую вы только что закрыли, чтобы снова открыть ее.
В главной строке меню Visual Studio есть три раскрывающихся списка. Чтобы выбрать активную целевую систему, используйте раскрывающийся список слева. Это система, в которой вызывается CMake для настройки и сборки проекта. Visual Studio запрашивает установки WSL с
wsl -l -v. На следующем рисунке в качестве целевой системы выбрано WSL2: Ubuntu-20.04.
Примечание.
Если Visual Studio начинает настраивать проект автоматически, прочитайте шаг 11 для управления двоичным развертыванием CMake, а затем перейдите к следующему шагу. Сведения о настройке этого поведения см. в разделе Изменение автоматической настройки и уведомлений кэша.
В раскрывающемся списке посередине выберите активную предустановку конфигурации. Настройка предустановок сообщает Visual Studio, как вызвать CMake и создать базовую систему сборки. На шаге 7 активная предустановка — это предустановка linux-default, созданная Visual Studio. Чтобы создать настраиваемую предустановку настройки, выберите " Управление конфигурациями" ... Дополнительные сведения о настройке предустановок см. в разделе "Выбор предустановки настройки" и "Изменение предустановок".
В раскрывающемся списке справа выберите активную предустановку сборки. Предустановки сборки сообщают Visual Studio, как вызвать сборку. На рисунке шага 7 активная предустановка сборки — это Default, созданная в Visual Studio. Дополнительные сведения о предустановках сборки см. в разделе Выбор предустановки сборки.
Настройте проект в WSL 2. Если создание project не запускается автоматически, то вручную вызывается настройка с помощью Project>Configureproject-name
Если у вас нет поддерживаемой версии CMake в дистрибутиве WSL 2, то Visual Studio предложит вам под главным меню ленты установить новую версию CMake. Выберите Да, чтобы развернуть двоичные файлы CMake в дистрибутиве WSL 2.
Пользователю будет предложено установить последние двоичные файлы CMake из CMake. org, так как поддерживаемая версия C Make не установлена".
Убедитесь, что этап настройки завершен, и вы видите сообщение «Генерация CMake завершена» в окне Вывод в разделе CMake. Файлы сборки записываются в каталог файловой системы дистрибутива WSL 2.
Выберите активный целевой объект отладки. В раскрывающемся меню отладки перечислены все целевые объекты CMake, доступные для проекта.
Откройте подпапку проекта в Обозреватель решений. В файле
CMakeProject.cppзадайте точку останова в разделеmain(). Вы также можете перейти к представлению целевых объектов CMake, нажав кнопку выбора представления в Обозреватель решений, выделенную на следующем снимке экрана:
Выберите Отладка>Начать или нажмите клавишу F5. Проект выполняет сборку, исполняемый файл запускается в дистрибутиве WSL 2 и Visual Studio останавливает выполнение в точке останова. Выходные данные программы (в данном случае
"Hello CMake.") отображаются в окне консоли Linux:
В окне консоли Linux Visual Studio отображаются выходные данные программы: Hello C Make. В окне редактора отображается программа hello world. Выполнение остановилось в точке останова на строке с командой return 0;.
Теперь вы создали и отладили приложение C++ с WSL 2 и Visual Studio 2022.
Дополнительные рекомендации по проектам WSL 2 и CMake
Visual Studio предоставляет встроенную поддержку WSL 2 для проектов CMake, использующих CMakePresets.json в качестве активного файла конфигурации. Сведения о миграции с CMakeSettings.json на CMakePresets.json см. в статье Enable CMake Presets integration in Visual Studio.
Если вы нацелены на дистрибутив WSL 2 и не хотите использовать инструментарий WSL 2, то в схеме настроек удаленного доступа Visual Studio установите для forceWSL1Toolset значение true. Дополнительные сведения см.: карта поставщиков удаленных параметров Visual Studio.
Если forceWSL1Tooslet имеет значение true, то Visual Studio не поддерживает копию исходных файлов в файловой системе WSL. Вместо этого он обращается к исходным файлам на подключенном диске Windows (/mnt/...).
В большинстве случаев рекомендуется использовать набор инструментов WSL 2 с дистрибутивами WSL 2, так как WSL 2 медленнее при хранении файлов проекта в файловой системе Windows. Дополнительные сведения о производительности файловой системы в WSL 2 см. в разделе Сравнение WSL 1 и WSL 2.
Укажите расширенные настройки, такие как путь к каталогу в WSL 2, куда копируется проект, параметры копирования источника и аргументы команды rsync, в карте поставщика удаленных настроек Visual Studio в CMakePresets.json. Дополнительные сведения можно найти в разделе Карта сопоставления поставщиков удаленных настроек Visual Studio.
Заголовки системы по-прежнему автоматически копируются в файловую систему Windows для предоставления собственного интерфейса IntelliSense. Вы можете настроить заголовки, включенные или исключенные из этой копии, в карте поставщика удаленных параметров Visual Studio в CMakePresets.json.
Можно изменить режим IntelliSense или указать другие параметры IntelliSense в карте параметров поставщика Visual Studio в CMakePresets.json. Для получения дополнительных сведений о карте поставщика см. Visual Studio Remote Settings vendor map.
Проекты Linux на основе WSL 2 и MSBuild
CMake рекомендуется для всех кроссплатформенных разработки C++ с Visual Studio, так как он позволяет создавать и отлаживать один и тот же проект на Windows, WSL и удаленных системах.
Но у вас может быть проект Linux на основе MSBuild.
Если у вас есть проект Linux на основе MSBuild, вы можете перейти к набору инструментов WSL 2 в Visual Studio. Щелкните проект правой кнопкой мыши в обозревателе решений, а затем выберите Свойства>Общие>Набор инструментов платформы:
Если вы нацелены на дистрибутив WSL 2 и не хотите использовать набор инструментов WSL 2, выберите в раскрывающемся списке Platform Toolset инструмент GCC для подсистема Windows для Linux или Clang для подсистема Windows для Linux. Если выбран один из этих наборов инструментов, Visual Studio не поддерживает копию исходных файлов в файловой системе WSL, а вместо этого обращается к исходным файлам через подключенный диск Windows (/mnt/...). Заголовки системы по-прежнему автоматически копируются в файловую систему Windows, чтобы обеспечить собственный интерфейс IntelliSense. Настройте заголовки, которые включены в эту копию или исключены из нее, в разделе Страницы свойств>Общие.
В большинстве случаев рекомендуется использовать набор инструментов WSL 2 с дистрибутивами WSL 2, так как WSL 2 медленнее при хранении файлов проекта в файловой системе Windows. Дополнительные сведения см. в статье "Сравнение WSL 1 и WSL 2".
См. также
Video: отладка C++ с дистрибутивами WSL 2 и Visual Studio 2022
Download Visual Studio 2022
Создайте проект CMake Linux в Visual Studio
Tutorial: отладка проекта CMake на удаленном компьютере Windows