- Настройка проекта Linux на основе MSBuild C++ в Visual Studio
- Общие параметры
- Настройки удаленной системы
- Копирование источников (только для удаленных систем)
- События сборки
- IntelliSense для заголовков в удаленных системах
- Языковой стандарт целевого объекта Linux
- Создание проекта Linux на основе MSBuild C++ в Visual Studio
- Создание проекта Linux
- Создание проекта Linux
Настройка проекта Linux на основе MSBuild C++ в Visual Studio
Поддержка Linux реализована в Visual Studio версии 2017 и выше.
В этой статье показано, как настроить проект Linux на основе MSBuild, который описан в статье Создание проекта Linux на основе MSBuild C++ в Visual Studio. Сведения о проектах Linux CMake см. в разделе Создание и настройка проекта Linux CMake.
Вы можете настроить проект Linux для физического компьютера или виртуальной машины Linux, а также для подсистемы Windows для Linux (WSL).
Visual Studio 2019 версии 16.1 и более поздней:
- Если в качестве целевой платформы используется WSL, можно избежать операций копирования, необходимых для сборки и получения компонентов IntelliSense для целевой удаленной системы Linux.
- Можно указать отдельные целевые объекты Linux для сборки и отладки.
Общие параметры
Чтобы просмотреть параметры настройки, выберите Проект > Свойства или щелкните правой кнопкой мыши проект в обозревателе решений и выберите Свойства в контекстном меню. Появятся параметры Общие.
По умолчанию создается исполняемый файл (с расширением .out). Чтобы создать статическую или динамическую библиотеку либо использовать существующий файл Makefile, используйте параметр Тип конфигурации.
Если вы выполняете сборку для подсистемы Windows для Linux (WSL) версии 1, количество параллельных процессов компиляции будет ограничено 64. Это ограничение контролируется параметром Максимальное количество параллельных заданий компиляции в разделе Свойства конфигурации > C/C++ > Общие.
Независимо от версии WSL, если планируется использовать более 64 параллельных процессов компиляции, рекомендуется выполнять сборку с помощью Ninja, что в большинстве случаев будет быстрее и надежнее. Чтобы выполнить сборку с помощью Ninja, используйте параметр Включить инкрементное построение в разделе Свойства конфигурации > Общие.
См. подробнее о параметрах на страницах свойств в справочнике по страницам свойств проекта Linux.
Настройки удаленной системы
Изменить параметры для удаленного компьютера Linux можно в окне Общие.
- Чтобы указать целевой удаленный компьютер Linux, используйте запись Компьютер удаленной сборки. Это позволит выбрать одно из подключений, созданных ранее. Чтобы создать новую запись, см. раздел Подключение к удаленному компьютеру Linux.
Visual Studio 2019 версии 16.7 и более поздней: чтобы выбрать подсистему Windows для Linux (WSL), задайте в раскрывающемся списке Набор инструментов платформы значение GCC для подсистемы Windows для Linux. Другие параметры удаленного взаимодействия исчезнут. Вместо них отобразится путь к оболочке WSL по умолчанию: Если у вас есть параллельные установки WSL, можно указать другой путь. См. подробнее об управлении и настройке и администрировании подсистемы Windows для разных дистрибутивов Linux. Вы можете указать другой целевой объект для отладки на странице Свойства конфигурации>Отладка.
Изменить компиляторы C и C++ или компоновщик и архиватор, которые используются для сборки проекта по умолчанию, можно в соответствующих записях в разделе C/C++ > Общие и разделе Компоновщик > Общие. Например, можно указать определенную версию GCC и Clang. Дополнительные сведения см. в статьях Свойства C/C++ (Linux C++) и Свойства компоновщика (Linux C++).
Копирование источников (только для удаленных систем)
При использовании WSL этот раздел можно пропустить.
Во время сборки в удаленных системах исходные файлы на компьютере разработки копируются на компьютер Linux и компилируются там. По умолчанию все источники в проекте Visual Studio копируются в расположения, заданные в параметрах выше. Однако можно также добавить в список дополнительные источники или полностью отключить копирование источников, что используется по умолчанию для проекта Makefile.
- Параметр Источники для копирования определяет, какие источники копируются на удаленный компьютер. По умолчанию @(SourcesToCopyRemotely) применяется ко всем файлам исходного кода в проекте, за исключением файлов ресурсов (например, изображений).
- Копирование источников можно включать и отключать, чтобы разрешать или запрещать копирование исходных файлов на удаленный компьютер.
- Параметр Дополнительные источники для копирования позволяет добавлять дополнительные исходные файлы, которые будут скопированы в удаленную систему. Вы можете задать список файлов, разделенных точкой с запятой, или использовать синтаксис : = , чтобы указать локальное и удаленное имя:
События сборки
Так как вся компиляция происходит на удаленном компьютере (или в WSL), в раздел «События сборки» свойства проекта добавляются некоторые дополнительные события сборки. Это удаленное событие перед сборкой, удаленное событие перед компоновкой и удаленное событие после сборки, которые будут возникать на удаленном компьютере перед или после отдельных этапов процесса.
IntelliSense для заголовков в удаленных системах
При добавлении нового подключения в диспетчере подключений Visual Studio автоматически обнаруживает каталоги включения (include) для компилятора на удаленной системе. Затем Visual Studio архивирует с помощью zip и копирует эти файлы в каталог на локальном компьютере Windows. После этого при каждом использовании данного соединения в проекте Visual Studio или CMake заголовки в этих каталогах используются для обеспечения поддержки технологии IntelliSense.
В Visual Studio 2019 версии 16.5 и более поздних удаленное копирование заголовков было оптимизировано. Заголовки теперь копируются по запросу при открытии проекта Linux или настройке CMake для целевого объекта Linux. Копирование выполняется в фоновом режиме для каждого проекта на основе указанных в проекте компиляторов. Дополнительные сведения см. в статье Улучшения точности и производительности IntelliSense в Linux.
Для использования этой возможности необходимо, чтобы на компьютере Linux был установлен zip. Для установки zip можно использовать следующую команду пакетного менеджера apt-get:
Для управления кэшем заголовка перейдите в меню Сервис > Параметры, кроссплатформенный > Диспетчер соединений > Диспетчер удаленных заголовков IntelliSense. Для обновления кэша заголовка после внесения изменений на компьютере Linux выберите удаленное подключение и нажмите Обновить. Нажмите Удалить, чтобы удалить заголовки, не удаляя само подключение. Выберите Проводник, чтобы открыть локальный каталог, в проводнике. К этой папке необходимо относиться как к папке только для чтения. Чтобы скачать заголовки для существующего подключения, созданного в Visual Studio 2017 до версии 15.3, выберите подключение и щелкните Скачать.
Вы можете включить ведение журнала для устранения проблем:
Языковой стандарт целевого объекта Linux
Языковые параметры Visual Studio не распространяются на целевые объекты Linux, так как Visual Studio не управляет установленными пакетами и не настраивает их. Сообщения, отображаемые в окне Вывод, например ошибки сборки, отображаются с использованием языка и языкового стандарта целевого объекта Linux. Вам потребуется настроить целевые объекты Linux для требуемого языкового стандарта.
Создание проекта Linux на основе MSBuild C++ в Visual Studio
Проекты Linux можно создавать в Visual Studio версии 2017 и выше.
Сначала убедитесь, что вы установили рабочую нагрузку разработки для Linux в Visual Studio. См. дополнительные сведения о скачивании, установке и настройке рабочей нагрузки для Linux.
Для кросс-платформенной компиляции рекомендуем использовать CMake. Более комплексная поддержка CMake предоставляется в Visual Studio 2019. Если CMake вам не подходит и у вас есть решение Windows в Visual Studio, в котором нужно обеспечить возможность компиляции для Linux, добавьте проект Visual Studio для Linux в решение Windows вместе с проектом общих элементов. Поместите код, совместно используемый обеими платформами, в проект общих элементов и добавьте ссылку на него из проектов Windows и Linux.
Создание проекта Linux
Чтобы создать проект Linux в Visual Studio 2017, сделайте следующее:
- Выберите Файл > Создать проект в Visual Studio или нажмите клавишиCTRL+SHIFT+N.
- Выберите узел Visual C++ > Кроссплатформенный > Linux, а затем укажите тип проекта, который хотите создать. Укажите имя и расположение, а затем щелкните ОК.
Кроссплатформенные > Linux», выделены все типы проектов, а также текстовые поля «Имя» и «Расположение».» data-linktype=»relative-path»/>
Тип проекта | Описание |
---|---|
Blink (Raspberry) | Проект для устройства Raspberry Pi с примером кода, который включает мигание светодиодного индикатора |
Консольное приложение (Linux) | Проект для любого компьютера Linux с примером кода, который выводит текст в окно консоли |
Пустой проект (Linux) | Проект для любого компьютера Linux без примера кода |
Проект Makefile (Linux) | Проект для любого компьютера Linux, который создается с использованием стандартной системы сборки Makefile |
Сначала убедитесь, что вы установили рабочую нагрузку разработки для Linux в Visual Studio. Ознакомьтесь с дополнительными сведениями о скачивании, установке и настройке рабочей нагрузки для Linux.
При создании в Visual Studio нового проекта C++ для Linux можно выбрать его тип: Visual Studio или CMake. В этой статье описано, как создать проект Visual Studio. В большинстве случаев для новых проектов, которые могут содержать открытый код или которые нужно компилировать для кроссплатформенной разработки, рекомендуется использовать CMake с Visual Studio. С помощью проекта CMake вы можете выполнять сборку и отладку одного и того же проекта и в Windows, и в Linux. Дополнительные сведения см. в статье Создание и настройка проекта Linux CMake.
Если у вас есть решение Windows в Visual Studio, в котором нужно обеспечить возможность компиляции для Linux, и CMake вам не подходит, добавьте проект Visual Studio для Linux в решение Windows вместе с проектом общих элементов. Поместите код, совместно используемый обеими платформами, в проект общих элементов и добавьте ссылку на него из проектов Windows и Linux.
Создание проекта Linux
Чтобы создать проект Linux в Visual Studio, сделайте следующее:
- Выберите Файл > Создать проект в Visual Studio или нажмите клавишиCTRL+SHIFT+N. Появится диалоговое окно «Создание проекта».
- В текстовом поле Поиск шаблонов введите Linux, чтобы получить список доступных шаблонов для проектов Linux.
- Выберите тип создаваемого проекта, например Консольное приложение, а затем нажмите кнопку Далее. Укажите имя и расположение, а затем щелкните Создать.
Тип проекта Описание Проект Raspberry Pi Проект для устройства Raspberry Pi с примером кода, который включает мигание светодиодного индикатора Консольное приложение Проект для любого компьютера Linux с примером кода, который выводит текст в окно консоли Пустой проект Проект для любого компьютера Linux без примера кода Проект, использующий файл makefile Проект для любого компьютера Linux, который создается с использованием стандартной системы сборки Makefile Проект CMake Проект для любого компьютера Linux, который создается с использованием системы сборки CMake