Использование набора инструментов Microsoft C++ из командной строки

Вы можете выполнять сборку приложений на языках C и C++ из командной строки с помощью средств, включенных в Visual Studio. Набор инструментов компилятора Microsoft C++ (MSVC) также можно скачать как отдельный пакет. Вам не нужно устанавливать интегрированную среду разработки Visual Studio, если она вам не нужна.

Примечание.

В этой статье описывается, как настроить среду для использования отдельных компиляторов, компоновщиков, библиотекарей и другие основные средства. Система сборки собственного проекта в Visual Studio на основе MSBuild не использует среду, как описано в этой статье. Дополнительные сведения об использовании средства MSBuild из командной строки см. в справочнике по использованию MSBuild в командной строке для C++.

Скачивание и установка инструментов

Если вы установили Visual Studio и рабочую нагрузку C++, у вас есть все программы командной строки. Сведения об установке C++ и Visual Studio см. здесь. Если требуется только набор инструментов командной строки, скачайте Средства сборки для Visual Studio. При запуске скачанного исполняемого файла будет обновлен и запущен Visual Studio Installer. Чтобы установить только необходимые средства разработки C++, выберите рабочую нагрузку Разработка классических приложений на C++. В разделе Сведения об установке можно выбрать дополнительные библиотеки и наборы инструментов, чтобы добавить их. Чтобы создать код с помощью наборов инструментов Visual Studio 2015, 2017 или 2019, выберите дополнительные средства сборки MSVC версии 140, версии 141 или версии 142. После проверки выбранных параметров щелкните Установить.

Если вы установили Visual Studio и рабочую нагрузку C++, у вас есть все программы командной строки. Сведения об установке C++ и Visual Studio см. здесь. Если требуется только набор инструментов командной строки, скачайте Средства сборки для Visual Studio 2017. При запуске скачанного исполняемого файла будет обновлен и запущен Visual Studio Installer. Чтобы установить только необходимые средства разработки C++, выберите рабочую нагрузку Набор инструментов Visual C++. В разделе Сведения об установке можно выбрать дополнительные библиотеки и наборы инструментов, чтобы добавить их. Чтобы создавать код с помощью набора инструментов Visual Studio 2015, выберите дополнительные средства сборки MSVC версии 140. После проверки выбранных параметров щелкните Установить.

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

Когда вы выбираете одну из рабочих нагрузок C++ в Visual Studio Installer, он устанавливает набор инструментов платформы Visual Studio. Набор инструментов платформы содержит все средства C и C++ для конкретной версии Visual Studio. Эти средства включают компиляторы C/C++, компоновщики, сборщики и другие средства сборки, а также соответствующие библиотеки и файлы заголовков. Все эти средства можно использовать в командной строке. Они также используются внутри интегрированной среды разработки Visual Studio. Существуют отдельные компиляторы для архитектур x86 и x64 и средства для сборки кода для целевых платформ x86, x 64, ARM и ARM64. Каждый набор средств для конкретного узла и целевой архитектуры сборки хранится в собственном каталоге.

Для правильной работы инструментам требуется несколько переменных среды. Эти переменные используются для добавления средств в путь, а также для задания расположений файлов, файлов библиотеки и пакетов SDK. Чтобы упростить процесс задания этих переменных среды, программа установки создает настраиваемые командные файлы, или пакетные файлы, во время установки. Вы можете выполнить один из этих командных файлов, чтобы задать конкретный узел и целевую архитектуру сборки, версию Windows SDK и набор инструментов платформы. Для удобства установщик также создает ярлыки в меню "Пуск". Сочетания клавиш открывают окна командной строки разработчика с помощью этих файлов команд для определенных сочетаний узлов и целевого объекта. Эти ярлыки гарантируют, что все необходимые переменные среды установлены и готовы к использованию.

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

Устанавливаемые наборы инструментов, командные файлы и ярлыки зависят от процессора компьютера и параметров, выбранных во время установки. Всегда устанавливаются средства, размещаемые на платформе x86, и кросс-компиляции x86 и x64 для сборки кода. Если у вас 64-разрядная версия Windows, будут также установлены средства, размещаемые на платформе x64, и кросс-компиляции x86 и x64 для сборки кода. Если выбрать необязательные средства универсальной платформы Windows для C++, также устанавливаются средства для платформ x86 и x64, которые собирают код ARM и ARM64. Эти и другие инструменты могут быть установлены в других рабочих нагрузках.

Переменные пути и среды для сборок командной строки

Программы командной строки MSVC используют переменные среды PATH, TMP, INCLUDE, LIB и LIBPATH, а также другие переменные среды, связанные с установленными средствами, платформами и пакетами SDK. Даже при простой установке Visual Studio могут задаваться двадцать и более переменных среды. Поэтому настоятельно рекомендуется использовать ярлык командной строки разработчика или один из настраиваемых файлов команд. Мы не рекомендуем задавать эти переменные в среде Windows самостоятельно.

Чтобы узнать, какие переменные среды задаются ярлыком командной строки разработчика, можно использовать команду SET. Откройте простое окно командной строки и сохраните выходные данные команды SET в качестве основы. Откройте окно командной строки разработчика и сохраните выходные данные команды SET для сравнения. Используйте средство диффа, например встроенный в Visual Studio, чтобы выделить переменные среды, заданные командной строкой разработчика. Дополнительные сведения о переменных среды компилятора и компоновщика см. в разделе cl environment переменных.

Сочетания клавиш командной строки разработчика

Ярлыки командной строки устанавливаются в папке конкретной версии Visual Studio в меню "Пуск" Windows. Ниже приведен список основных ярлыков командной строки и архитектуры сборки, которые они поддерживают:

  • Командная строка разработчика — указывает среде использовать 32-разрядные собственные инструменты x86 для сборки 32-разрядного машинного кода x86.
  • Командная строка Native Tools x86 — указывает среде использовать 32-разрядные собственные инструменты x86 для сборки 32-разрядного машинного кода x86.
  • Командная строка Native Tools x64 — указывает среде использовать 64-разрядные собственные инструменты x64 для сборки 64-разрядного машинного кода x64.
  • Командная строка Cross Tools x86_x64 — указывает среде использовать 32-разрядные собственные инструменты x86 для сборки 64-разрядного машинного кода x64.
  • Командная строка Cross Tools x64_x86 — указывает среде использовать 64-разрядные собственные инструменты x64 для сборки 32-разрядного машинного кода x86.

Имена ярлыков и папок в меню "Пуск" зависят от установленной версии Visual Studio. Они также зависят от Псевдонима установки, если вы его задали. Например, предположим, что вы установили Visual Studio 2022, и вы дали ему псевдоним "Последняя версия". Ярлык командной строки разработчика называется командной строкой разработчика для VS 2022 (последняя версия) в папке с именем Visual Studio 2022.

Имена ярлыков и папок в меню "Пуск" зависят от установленной версии Visual Studio. Они также зависят от Псевдонима установки, если вы его задали. Например, предположим, что вы установили Visual Studio 2017 и присвоили ей псевдоним Последняя версия. Ярлык командной строки разработчика называется Командная строка разработчика для VS 2017 (последняя версия) в папке с именем Visual Studio 2017.

Имена ярлыков и папок в меню "Пуск" зависят от установленной версии Visual Studio. Например, предположим, что вы установили Visual Studio 2015. Ярлык командной строки разработчика называется Командная строка разработчика для VS 2015.

Примечание.

Некоторые программы командной строки и параметры могут требовать разрешений администратора. Если при их использовании возникают проблемы с разрешениями, мы рекомендуем открыть окно командной строки разработчика с помощью команды Запуск от имени администратора. Откройте контекстное меню для окна командной строки, а затем выберите команду Дополнительно > Запуск от имени администратора.

Открытие окна командной строки разработчика

  1. На рабочем столе откройте меню "Пуск" Windows. В Windows 11 нажмите кнопку "Все приложения" , чтобы открыть список установленных приложений. В Windows 10 список открыт слева. Прокрутите список вниз, чтобы найти и открыть папку (а не приложение) для вашей версии Visual Studio, например Visual Studio 2022.

  2. В папке выберите ярлык Командная строка разработчика для вашей версии Visual Studio. Этот ярлык запускает окно командной строки разработчика, которое использует архитектуру сборки по умолчанию: 32-разрядные собственные инструменты x86 для сборки 32-разрядного машинного кода x86. Если вы предпочитаете архитектуру сборки не по умолчанию, выберите одну из собственных командных строк или командную строку инструментов кросс-компиляции, чтобы указать узел и целевую архитектуру.

Более быстрый способ открыть командную строку разработчика — ввести запрос командная строка разработчика в поле поиска на рабочем столе. Затем выберите нужный результат.

Примечание.

По умолчанию текущий рабочий каталог в командной строке разработчика является корнем установки Visual Studio в каталоге Program Files. Это не подходящее расположение для кода и проектов. Перед созданием проекта измените текущий рабочий каталог на другое расположение. Интегрированная среда разработки создает проекты в пользовательском каталоге, как правило, в %USERPROFILE%\source\repos.

Расположения файлов команд разработчика

Если вам необходимо установить среду сборки в открытом окне командной строки, можно использовать один из командных файлов, созданных установщиком. Рекомендуем задавать среду в новом окне командной строки. Не рекомендуется менять среды позднее в том же окне командной строки.

Расположение командного файла зависит от установленной версии Visual Studio и расположения, выбранного во время установки. Для Visual Studio 2019 типичная установка в 64-разрядной системе находится в \Program Files\Microsoft Visual Studio\2022\<edition>. Это <edition> может быть сообщество, профессиональный, корпоративный, buildTools или другой псевдоним, который вы предоставили.

Расположение командного файла зависит от установленной версии Visual Studio и расположения, выбранного во время установки. Для Visual Studio 2019 типичная установка в 64-разрядной системе находится в \Program Files (x86)\Microsoft Visual Studio\2019\<edition>. Это <edition> может быть сообщество, профессиональный, корпоративный, buildTools или другой псевдоним, который вы предоставили.

Расположение командного файла зависит от установленной версии Visual Studio и расположения, выбранного во время установки. Для Visual Studio 2017 типичная установка находится в \Program Files (x86)\Microsoft Visual Studio\2017\<edition>64-разрядной системе. Это <edition> может быть сообщество, профессиональный, корпоративный, buildTools или другой псевдоним, который вы предоставили.

Расположение командного файла зависит от версии Visual Studio и каталога установки. Для Visual Studio 2015 типичный расположение установки в 64-разрядной системе находится в \Program Files (x86)\Microsoft Visual Studio 14.0.

Основной файл VsDevCmd.batкомандной строки разработчика находится в подкаталоге Common7\Tools . Если параметры не указаны, он указывает среде использовать собственные инструменты x86 для создания 32-разрядного кода x86.

Для настройки конкретных архитектур сборки доступны дополнительные командные файлы. Доступные командные файлы зависят от установленных рабочих нагрузок и параметров Visual Studio. В Visual Studio 2017 и Visual Studio 2019 их можно найти в подкаталоге VC\Вспомогательный\Build.

Для настройки конкретных архитектур сборки доступны дополнительные командные файлы. Доступные командные файлы зависят от установленных рабочих нагрузок и параметров Visual Studio. В Visual Studio 2015 они находятся в подкаталогах VC, VC\bin или VC\bin\architecture , где архитектура является одним из параметров собственного или кросс-компилятора.

Эти командные файлы устанавливают параметры по умолчанию и вызывают VsDevCmd.bat, чтобы настроить указанное окружение архитектуры сборки. Обычная установка может включать следующие командные файлы:

Командный файл Узел и целевые архитектуры
vcvars32.bat Использует 32-разрядные собственные инструменты x86 для сборки 32-разрядного машинного кода x86.
vcvars64.bat Использует 64-разрядные собственные инструменты x64 для сборки 64-разрядного кода x64.
vcvarsx86_amd64.bat Использует 32-разрядные собственные инструменты кросс-компиляции x86 для сборки 64-разрядного кода x64.
vcvarsamd64_x86.bat Использует 64-разрядные собственные инструменты кросс-компиляции x64 для сборки 32-разрядного кода x86.
vcvarsx86_arm.bat Использует 32-разрядные собственные инструменты кросс-компиляции x86 для сборки кода ARM.
vcvarsamd64_arm.bat Использует 64-разрядные собственные инструменты кросс-компиляции x64 для сборки кода ARM.
vcvarsx86_arm64.bat Использует 32-разрядные собственные инструменты кросс-компиляции x86 для сборки кода ARM64.
vcvarsamd64_arm64.bat Использует 64-разрядные собственные инструменты кросс-компиляции x64 для сборки кода ARM64.
vcvarsall.bat Использует параметры для указания узла и целевой архитектуры, пакета Windows SDK и платформы. Список поддерживаемых вариантов можно вызвать параметром /help.

Внимание

Файл vcvarsall.bat и другие командные файлы Visual Studio могут различаться на разных компьютерах. Не заменяйте отсутствующий или поврежденный файл vcvarsall.bat файлом с другого компьютера. Перезапустите Visual Studio Installer, чтобы заменить отсутствующий файл.

Файл vcvarsall.bat также может различаться в разных версиях. Если текущая версия Visual Studio установлена на компьютере, на котором также имеется более ранняя версия Visual Studio, не запускайте файл vcvarsall.bat или другой командный файл других версий в том же окне командной строки.

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

Самый простой способ указать конкретную архитектуру сборки в имеющемся командном окне — использовать файл vcvarsall.bat. Используйте файл vcvarsall.bat, чтобы задать переменные среды для настройки командной строки для собственной 32- или 64-разрядной компиляции. Аргументы позволяют указать кросс-компиляцию для процессоров x86, x64, ARM или ARM64. Вы можете указать в качестве целевой платформы Microsoft Store, универсальную платформу Windows или платформу классических приложений Windows. Можно даже указать, какой пакет Windows SDK использовать, и выбрать версию набора инструментов платформы.

Если аргументы не используются, файл vcvarsall.bat настраивает переменные среды для использования текущего собственного компилятора x86 для 32-разрядных целевых классических приложений Windows. Можно добавить аргументы, чтобы настроить среду для использования собственных инструментов или инструментов кросс-компиляции. Файл vcvarsall.bat выводит сообщение об ошибке, если указанная конфигурация не установлена или недоступна на компьютере.

Синтаксис vcvarsall

vcvarsall.bat [architecture] [platform_type] []winsdk_version [] [-vcvars_ver=vcversion] [] [spectre_mode]

architecture
Этот необязательный аргумент указывает узел и целевую архитектуру для использования. Если параметр architecture не указан, используется среда сборки по умолчанию. Поддерживаются следующие аргументы:

architecture GNU C ++ Архитектура главного компьютера Архитектура выходных данных сборки (целевая)
x86 собственный 32-разрядный x86 x86, x64 x86
x86_amd64 или x86_x64 x64 для x86 (кросс-компилятор) x86, x64 x64
x86_arm ARM для x86 (кросс-компилятор) x86, x64 ARM
x86_arm64 ARM64 для x86 (кросс-компилятор) x86, x64 ARM64
amd64 или x64 Собственный 64-разрядный x64 x64 x64
amd64_x86 или x64_x86 x86 для x64 (кросс-компилятор) x64 x86
amd64_arm или x64_arm ARM для x64 (кросс-компилятор) x64 ARM
amd64_arm64 или x64_arm64 ARM64 для x64 (кросс-компилятор) x64 ARM64

platform_type
Этот необязательный аргумент позволяет указать store или uwp в качестве типа платформы. По умолчанию среда настроена на сборку классических или консольных приложений.

winsdk_version
При необходимости указывает версию Windows SDK для использования. По умолчанию используется последняя установленная версия Windows SDK. Чтобы указать версию Windows SDK, можно использовать полный номер Windows SDK, например 10.0.10240.0, или указать 8.1, чтобы использовать пакет SDK для Windows 8.1.

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

Используйте -vcvars_ver=14.2x.yyyyy, чтобы указать конкретную версию набора инструментов компилятора Visual Studio 2019.

Используйте -vcvars_ver=14.29, чтобы указать последнюю версию набора инструментов компилятора Visual Studio 2019.

Используйте -vcvars_ver=14.16, чтобы указать последнюю версию набора инструментов компилятора Visual Studio 2017.

Используйте -vcvars_ver=14.1x.yyyyy, чтобы указать конкретную версию набора инструментов компилятора Visual Studio 2017.

Используйте -vcvars_ver=14.0, чтобы указать набор инструментов компилятора Visual Studio 2015.

spectre_mode
Не используйте этот параметр, чтобы применять библиотеки без устранения рисков Spectre. Используйте значение spectre, чтобы применять библиотеки с устранением рисков Spectre.

Настройка среды сборки в существующем окне командной строки

  1. В командной строке выполните команду CD, чтобы перейти на каталог установки Visual Studio. Затем снова используйте CD, чтобы перейти в подкаталог, который содержит зависящие от конфигурации командные файлы. Для Visual Studio 2019 и Visual Studio 2017 используйте подкаталог VC\Вспомогательный\Build . Для Visual Studio 2015 используйте подкаталог VC.

  2. Введите команду для вашей среды разработки. Например, для сборки кода ARM для универсальной платформы Windows на 64-разрядной платформе с последней версией Windows SDK и набором инструментов компилятора Visual Studio используйте эту командную строку:

    vcvarsall.bat amd64_arm uwp

Создание собственных ярлыков командной строки

Откройте диалоговое окно свойств для ярлыка командной строки разработчика, чтобы увидеть использованный целевой объект команды. Например, целевой объект для ярлыка командной строки Native Tools x64 для VS 2019 выглядит примерно следующим образом:

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"

Откройте диалоговое окно свойств для ярлыка командной строки разработчика, чтобы увидеть использованный целевой объект команды. Например, целевой объект для ярлыка командной строки Native Tools x64 для VS 2017 выглядит примерно следующим образом:

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"

Откройте диалоговое окно свойств для ярлыка командной строки разработчика, чтобы увидеть использованный целевой объект команды. Например, целевой объект для ярлыка командной строки Native Tools x64 для VS 2015 выглядит примерно следующим образом:

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64

Пакетные файлы для конкретных архитектур устанавливают параметр architecture и вызывают vcvarsall.bat. Вы можете передать те же параметры в эти пакетные файлы, как вы бы передали их в файл vcvarsall.bat, или можно просто вызвать vcvarsall.bat напрямую. Чтобы задать параметры для ярлыка своей командной строки, добавьте их в конец команды в двойных кавычках. Например, вот ярлык для сборки кода ARM для универсальной платформы Windows на 64-разрядной платформе с последней версией Windows SDK. Чтобы использовать более раннюю версию набора инструментов компилятора, укажите номер версии. Используйте подобный целевой объект команды в ярлыке:

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64_arm uwp -vcvars_ver=14.29

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64_arm uwp -vcvars_ver=14.19

%comspec% /k "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 -vcvars_ver=14.0

Измените путь, чтобы указать каталог установки Visual Studio. Файл vcvarsall.bat содержит дополнительную информацию об определенных номерах версии.

Программы командной строки

Для сборки проекта C/C++ из командной строки Visual Studio предоставляет следующие программы командной строки:

CL
Используйте компилятор (cl.exe) для компиляции и компоновки файлов исходного кода в приложения, библиотеки и DLL.

Link
Используйте компоновщик (link.exe) для компоновки скомпилированных объектных файлов и библиотек в приложения и DLL.

При сборке в командной строке команда F1 для получения мгновенной справки недоступна. Вместо этого используйте поисковую систему для получения сведений о предупреждениях, ошибках и сообщениях. Также можно скачать и применить автономные файлы справки. Чтобы использовать поиск в Microsoft Learn, введите запрос в поле поиска в верхней части любой статьи.

Средства управления проектами из командной строки

По умолчанию в интегрированной среде разработки Visual Studio используется собственная система сборки проектов на основе MSBuild. Можно вызвать MSBuild непосредственно для создания проектов без использования интегрированной среды разработки. Можно также выполнить команду devenv, чтобы использовать Visual Studio для сборки проектов и решений. Visual Studio также поддерживает системы сборки на основе CMake или NMake.

MSBuild
Используйте MSBuild (msbuild.exe) и файл проекта (VCXPROJ) для настройки сборки и вызова набора инструментов без загрузки Visual Studio IDE. Это аналогично выполнению команд Собрать проект или Собрать решение в интегрированной среде разработки Visual Studio. MSBuild имеет преимущества по сравнению с интегрированной средой разработки при сборке в командной строке. Вам не нужно устанавливать полную среду IDE на всех серверах сборки и в конвейерах сборки. Так вы избегаете дополнительных издержек IDE. MSBuild выполняется в контейнерных средах сборки и поддерживает двоичное средство ведения журнала.

DEVENV
Используйте DEVENV (devenv.exe) вместе с параметром командной строки, например /Build или /Clean, для выполнения определенных команд сборки без отображения интегрированной среды разработки Visual Studio.

CMake
CMake (cmake.exe) — это кроссплатформенное средство с открытым кодом, которое позволяет определять процессы сборки, выполняемые на множестве платформ. CMake может настраивать и контролировать собственные средства сборки для поддерживаемых платформ, например MSBuild и Make. См. документацию по CMake для получения дополнительных сведений.

NMAKE
Используйте NMAKE (nmake.exe) для сборки проектов C++ с помощью традиционного файла makefile.

Примечание.

Начиная с Visual Studio 2019 версии 16.5, MSBuild и DEVENV не используют окружение командной строки для управления набором инструментов и используемыми библиотеками.

В этом разделе

В этих статьях показано, как создавать приложения в командной строке, а также описано, как настроить среду сборки из командной строки. В некоторых из них показано, как использовать 64-разрядные наборы инструментов и целевые платформы x86, x64, ARM и ARM64. Они также описывают использование средств сборки из командной строки MSBuild и NMAKE.

Пошаговое руководство. Компиляция собственной программы C++ в командной строке
Содержит пример создания и компиляции программы на языке C++ из командной строки.

Пошаговое руководство. Компиляция программы на языке C из командной строки
Описывается компиляция программы, написанной на языке программирования C.

Пошаговое руководство. Компиляция программы C++/CLI в командной строке
Описывается создание и компиляция программы C++/CLI, в которой используется платформа .NET Framework.

Пошаговое руководство. Компиляция программы C++/CX в командной строке
Описывается создание и компиляция программы C++/CX, в которой используется среда выполнения Windows.

NMAKE reference (Справочник по NMAKE)
Содержит ссылки на статьи, в которых описывается служебная программа обслуживания программ Майкрософт (NMAKE.EXE).

MSBuild в командной строке — C++
Содержит ссылки на статьи, в которых рассматривается использование программы msbuild.exe из командной строки.

/MD, /MT, /LD (использование библиотеки времени выполнения)
Описывается использование этих параметров компилятора для работы с библиотекой времени выполнения отладки или выпуска.

Параметры компилятора C/C++
Содержит ссылки на статьи, посвященные параметрам компилятора C и C++, а также программе CL.exe.

Параметры компоновщика MSVC
Содержит ссылки на статьи, посвященные параметрам компоновщика и программе LINK.exe.

Дополнительные средства сборки MSVC
Содержит ссылки на средства сборки C/C++, включенные в состав Visual Studio.

См. также

Проекты и системы сборки