Build linux visual studio

Пошаговое руководство. Сборка и отладка C++ с помощью WSL 2 и Visual Studio 2022

В 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.

Набор средств WSL 2 поддерживается интеграцией предварительных установок CMake в Visual Studio. Дополнительные сведения см. в статьях Интеграция предварительных установок CMake в Visual Studio и Visual Studio Code и Настройка и сборка с помощью предустановок CMake в Visual Studio. В этой статье также приводятся более подробные сведения, касающиеся сложных проектов WSL 2 и CMake.

Установка средств сборки

Установите средства, необходимые для сборки и отладки в WSL 2. Вы установите последнюю версию CMake с помощью двоичного развертывания CMake в Visual Studio на следующем шаге.

  1. Установите дистрибутив WSL и WSL 2, следуя инструкциям в разделе Установка WSL.
  2. Если предположить, что дистрибутив использует apt (в этом пошаговом руководстве используется Ubuntu),выполните следующие команды для установки необходимых средств сборки в дистрибутив WSL 2:
sudo apt update sudo apt install g++ gdb make ninja-build rsync zip 
  • Компилятора C++
  • gdb
  • CMake
  • rsync
  • zip
  • Базового генератора системы сборки

Кроссплатформенная разработка CMake с помощью дистрибутива WSL 2

В этом пошаговом руководстве используется GCC и Ninja в Ubuntu. А также Visual Studio 2022 версии 17.0 (предварительная версия 2) или более поздней.

Visual Studio определяет проект CMake как папку с файлом CMakeLists.txt в корневом каталоге проекта. В этом пошаговом руководстве вы создадите новый проект CMake с помощью шаблона проекта CMake Visual Studio:

  1. В Visual Studio на экране Начало работы выберите Создание нового проекта. Снимок экрана: диалоговое окно
  2. В текстовом поле Поиск шаблонов введите «cmake». Выберите тип Проект CMake и нажмите кнопку Далее. Присвойте проекту имя и выберите расположение, а затем нажмите Создать.
  3. Включите интеграцию предустановок CMake в Visual Studio. Выберите Сервис>Параметры>CMake>Общие. Установите флажок Отдавать предпочтение использованию предустановок CMake для настройки, сборки и тестирования, затем нажмите ОК. Вместо этого можно было добавить файл CMakePresets.json в корневую папку проекта. Дополнительные сведения см. в разделе Включение интеграции предварительных установок CMake. Снимок экрана общих параметров CMake с выделенным и выбранным параметром Use CMake Presets (Использовать предустановки CMake, если они доступны). В противном случае используйте CMakeSettings.json.
  4. Чтобы активировать интеграцию: в главном меню выберите Файл>Закрыть папку. Появится страница Начало работы. В разделе Открыть последние выберите папку, которую вы только что закрыли, чтобы снова открыть ее.
  5. В главном меню Visual Studio есть три раскрывающихся списка. Чтобы выбрать активную целевую систему, используйте раскрывающийся список слева. Это система, в которой будет вызываться CMake для настройки и сборки проекта. Для запроса установки WSL среда Visual Studio использует wsl -l -v . На следующем рисунке в качестве целевой системы выбрано WSL2: Ubuntu-20.04. В раскрывающемся списке Целевая система отображается выбранный WSL2: Ubuntu-20.04.

Примечание Если Visual Studio запускает автоматическую настройку проекта, перейдите к шагу 11 для управления двоичным развертыванием CMake, а затем перейдите к шагу ниже. Сведения о настройке этого поведения см. в разделе Изменение автоматической настройки и уведомлений кэша.

  • В раскрывающемся списке посередине выберите активную предустановку конфигурации. Предустановка конфигурации указывает для Visual Studio способ вызова CMake и создания базовой системы сборки. На шаге 7 в качестве активной предустановки конфигурации используется предустановка linux-default, созданная Visual Studio. Чтобы создать настраиваемую предустановку настройки, выберите Управление конфигурациями. Дополнительные сведения о настройке предустановок см. в разделах Выбор предустановок настройки и Изменение предустановок. Раскрывающийся список
  • В раскрывающемся списке справа выберите активную предустановку сборки. Предустановки сборки сообщают Visual Studio способ вызова сборки. На рисунке шага 7 активной предустановкой сборки является предустановка По умолчанию, созданная Visual Studio. Дополнительные сведения о предустановках сборки см. в разделе Выбор предустановки сборки.
  • Настройте проект в WSL 2. Если создание проекта не запускается автоматически, вручную вызовите configure с параметром Project>Configureproject-name. Раскрывающийся список настройки проекта с выбранным параметром Configure CMakeProject (Настройка CMakeProject).
  • Если в вашем дистрибутиве WSL 2 не установлена поддерживаемая версия CMake, в Visual Studio под лентой главного меню отобразится запрос на развертывание последней версии CMake. Выберите Да, чтобы развернуть двоичные файлы CMake в дистрибутиве WSL 2. Запрос Visual Studio под панелью инструментов с сообщением о том, что поддерживаемая версия cmake отсутствует. Установите последнюю версию двоичных файлов CMake из Cmake.org? Да нет.
  • Убедитесь, что шаг настройки завершен, и что в окне Вывод в области CMake отображается сообщение Создание CMake завершено. Файлы сборки записываются в каталог в файловой системе дистрибутива WSL 2. Окно вывода с сообщением о том, что создание CMake завершено.
  • Выберите активный целевой объект отладки. В раскрывающемся меню отладки перечислены все целевые объекты CMake, доступные для проекта. Раскрывающееся меню отладки с выбранным пунктом CMakeProject.
  • Разверните вложенную папку проекта в обозревателе решений. В файле CMakeProject.cpp задайте точку останова в разделе main() . Перейти к представлению целевых объектов CMake можно также с помощью кнопки выбора представлений в обозревателе решений, выделенной на следующем снимке экрана: Обозреватель решений с кнопкой для переключения представлений. Кнопка находится справа от кнопки дома (дома).
  • Выберите Отладка>Начать или нажмите клавишу F5. Будет выполнена сборка проекта, исполняемый файл будет запущен в дистрибутиве WSL 2, а Visual Studio прервет выполнение в точке останова. Выходные данные программы (в данном случае «Hello CMake.» ) можно просмотреть в окне консоли Linux: Окно консоли Linux с текстом
  • Вы создали приложение C++ с помощью WSL 2 и Visual Studio 2022 и выполнили его отладку.

    Дополнительные рекомендации по проектам WSL 2 и CMake

    Visual Studio обеспечивает собственную поддержку WSL 2 только для проектов CMake, которые используют CMakePresets.json в качестве активного файла конфигурации. Сведения о миграции с CMakeSettings.json на CMakePresets.json см. в разделе Включение интеграции предустановок CMake в Visual Studio.

    Если вы настраиваете дистрибутив WSL 2 и не хотите использовать набор инструментов WSL 2, то на карте поставщика удаленных параметров Visual Studio в CMakePresets.json установите для параметра 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.

    Проекты Linux на основе WSL 2 и MSBuild

    CMake рекомендуется для любой кроссплатформенной разработки C++ с использованием Visual Studio, поскольку позволяет создавать и отлаживать один и тот же проект как в Windows, так и в WSL и удаленных системах.

    Но у вас может быть проект Linux на основе MSBuild.

    Если у вас есть проект Linux на основе MSBuild, вы можете выполнить обновление до набора инструментов WSL 2 в Visual Studio. Щелкните правой кнопкой мыши проект в обозревателе решений и выберите Свойства>Общий>набор инструментов платформы:

    Снимок экрана: раскрывающийся список с выбранным набором инструментов платформы, а справа — еще один раскрывающийся список с выбранным набором инструментов WSL2.

    Если вы используете дистрибутив WSL 2 и не хотите использовать набор инструментов WSL 2, в раскрывающемся списке Набор инструментов платформы выберите GCC для подсистема Windows для Linux или Clang для набора инструментов подсистема Windows для Linux. Если выбран один из этих наборов инструментов, Visual Studio не будет хранить копию исходных файлов в файловой системе WSL и вместо этого будет получать доступ к исходным файлам на подключенном диске Windows ( /mnt/ . ). Системные заголовки по-прежнему автоматически копируются в файловую систему Windows для предоставления собственного интерфейса IntelliSense. Настройте заголовки, которые включены в эту копию или исключены из нее, в разделе Страницы свойств>Общие.

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

    Источник

    Читайте также:  Linux посмотреть логические диски
    Оцените статью
    Adblock
    detector