Как скомпилировать программу в visual studio в командной строке

Обновлено: 07.07.2024

Я пишу сценарий цикла checkout, build, distribution, test и commit для большого решения C++, которое использует монотонно, CMake, Visual Studio Express 2008 и пользовательские тесты.

все остальные части кажутся довольно прямыми, но я не вижу, как скомпилировать решение Visual Studio без получения GUI.

скрипт написан на Python, но ответ, который позволит мне просто позвонить в: os.система делать.

Я знаю два способа сделать это.

Способ 1
Первый метод (который я предпочитаю) - использовать в MSBuild:

Способ 2
Вы также можете запустить:

опция vcexpress возвращается немедленно и не печатает никаких выходных данных. Полагаю, это то, что вам нужно для сценария.

обратите внимание, что DevEnv не распространяется с Visual Studio Express 2008 (я потратил много времени пытаясь понять это, когда у меня впервые возникла аналогичная проблема).

таким образом, конечный результат может быть:

вы также захотите убедиться, что ваши переменные среды верны, так как msbuild и vcexpress по умолчанию не находятся в системном пути. Либо запустите среду сборки Visual Studio и запустите сценарий оттуда, либо измените пути в Python (с помощью os.функцию putenv).

MSBuild обычно работает, но я сталкивался с трудностями раньше. Возможно, вам больше повезет с

честно говоря, я должен добавить свои 2 цента.

вы можете сделать это с помощью msbuild.exe. Существует много версий msbuild.exe.

используйте нужную вам версию. В основном вы должны использовать последний.

Итак, как это сделать.

запустить команда окно

указать путь к программа MSBuild.exe

"C:\Users\Clark.Кент\документы\visual studio 2012\Проекты\WpfApplication1\WpfApplication1.sln"

добавьте любые необходимые флаги после пути решения.

пресс ENTER

Примечание Вы можете получить помощь обо всех возможных флагах, таких как

используя msbuild как указывали другие, работал на меня, но мне нужно было сделать немного больше, чем просто это. Прежде всего, msbuild должен иметь доступ к компилятору. Это можно сделать, выполнив:

затем msbuild не было в моем $PATH, поэтому мне пришлось запустить его через его явный путь:

наконец, мой проект использует некоторые переменные, такие как $(VisualStudioDir) . Кажется, что они не устанавливаются msbuild поэтому мне пришлось установить их вручную с помощью /property вариант:

эта строка, наконец, позволила мне скомпилировать мой проект.

бонус: похоже, что инструменты командной строки не требуют регистрации после 30 дней их использования, как это делает "бесплатный" GUI-интерфейс Visual Studio Community edition. С требованием регистрации Microsoft на месте, эта версия вряд ли бесплатно. Бесплатно-как-в-facebook если угодно.

DEVENV работает хорошо во многих случаях, но на WIXPROJ для создания моего установщика WIX все, что я получил, это "катастрофическая" ошибка в журнале Out.

Это работает: MSBUILD / путь / проект.WIXPROJ /t:Build / p:Configuration=Release

Как скомпилировать и запустить файл .cs из окна командной строки?

Для запуска сначала откройте командную строку, нажмите «Пуск», затем введите cmd.exe .
Затем вам может потребоваться cd в каталог, в котором хранятся ваши исходные файлы.

(все в одной строке)

Если у вас есть более одного исходного модуля для компиляции, вы можете поместить его в ту же командную строку. Если у вас есть другие сборки для ссылки, используйте /r:AssemblyName.dll .

Убедитесь, что в одном из ваших классов определен статический метод Main (), который действует как «точка входа».

Чтобы запустить полученный EXE-файл, введите MyApplication , а затем <ENTER> в командной строке.

Эта статья на MSDN содержит более подробную информацию. о параметрах компилятора командной строки. Вы можете встраивать ресурсы, устанавливать значки, подписывать сборки - все, что вы могли делать в Visual Studio.

Если у вас установлена ​​Visual Studio, в меню «Пуск»; в инструментах Visual Studio вы можете открыть «командную строку Visual Studio», в которой будут настроены все необходимые переменные среды и пути для компиляции из командной строки.

Хотя это очень удобно, вы должны сочетать это со знанием какого-либо инструмента сборки, такого как NAnt. , MSBuild, FinalBuilder и т. д. Эти инструменты обеспечивают полную среду сборки, а не только базовый компилятор.

На Mac

На Mac синтаксис аналогичен, только компилятор C Sharp называется просто csc :

Затем для его запуска:

Скопируйте в эту переменную следующий путь:

"C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319"

Таким образом, вам не нужно указывать весь путь каждый раз, когда вы компилируете код. Просто используйте

"C: \ Users \ UserName \ Desktop> csc [параметры] filename.cs"

Или где бы ни был путь вашего кода.

Теперь можно идти.

c:> csc Hello.cs

Вы можете запустить программу

c:> Здравствуйте

Для последней версии сначала откройте окно Powershell, перейдите в любую папку (например, c:\projects\ ) и запустите следующую команду

Наконец - обратите внимание, что командная строка зависит от реализации; для MS это csc ; для моно это gmcs и друзья . Аналогично, для выполнения: это просто exename для версии MS, но обычно" mono exename "для mono.

Наконец, многие проекты создаются с помощью инструментов сценария сборки; MSBuild, NAnt и т. д.

Тогда просто беги

"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Roslyn\csc.exe" MyApplication.cs

Для компиляции единого исходного файла в исполняемый файл.

Вы можете создавать файлы классов в командной строке VS (чтобы были загружены все необходимые переменные среды), а не в командном окне Windows по умолчанию.

Чтобы узнать больше о создании командной строки с помощью csc.exe (компилятор), см. это статья.

Если вы установили Visual Studio, у вас есть командная строка разработчика для VS. Вы можете легко создать свою программу с помощью команды csc и запустить приложение с именем приложения в командной строке разработчика.

В этом пошаговом руководстве приводятся инструкции по созданию программы на языке C++ в стиле "Hello, Wolrd" в текстовом редакторе с последующей компиляцией из командной строки. Если вы хотите попробовать интегрированную среду разработки Visual Studio вместо командной строки, см. статью Пошаговое руководство. Работа с проектами и решениями (C++) или Использование интегрированной среды разработки Visual Studio для разработки приложений для настольных систем на языке C++.

В этом пошаговом руководстве вместо ввода показанного кода можно использовать собственную программу на языке C++. Также можно использовать пример кода C++ из другой статьи справки.

Предварительные требования

Для выполнения этого пошагового руководства необходимо установить Visual Studio и дополнительную рабочую нагрузку Разработка настольных приложений на C++ или Build Tools командной строки для Visual Studio.

Visual Studio — интегрированная среда разработки (IDE). Она поддерживает полнофункциональный редактор, диспетчеры ресурсов, отладчики и компиляторы для многих языков и платформ. Доступные версии включают бесплатный выпуск Visual Studio Community Edition, и все они могут поддерживать разработку на C и C++. Сведения о скачивании и установке Visual Studio см. в статье Установка поддержки C++ в Visual Studio.

Build Tools для Visual Studio устанавливают только средства, библиотеки и компиляторы командной строки, необходимые для сборки программ C и C++. Это идеальный вариант для создания заданий и упражнений, а установка выполняется относительно быстро. Чтобы установить только средства командной строки, найдите Build Tools для Visual Studio на странице загрузки Visual Studio.

Прежде чем можно будет выполнить сборку программ C или C++ в командной строке, убедитесь, что эти средства установлены и к ним можно получить доступ из командной строки. Visual C++ имеет сложные требования к среде командной строки для поиска используемых средств, заголовков и библиотек. Visual C++ нельзя использовать в простом окне командной строки без предварительной подготовки. К счастью, Visual C++ устанавливает ярлыки для запуска командной строки разработчика, для которой настроена среда для сборок из командной строки. К сожалению, имена ярлыков командной строки разработчика и места их расположения отличаются практически во всех версиях Visual C++ и в различных версиях Windows. Первая задача пошагового руководства — найти нужную командную строку.

Ярлык командной строки разработчика автоматически задает правильные пути для компилятора и средств, а также для всех необходимых заголовков и библиотек. Эти значения среды необходимо задавать самостоятельно, если используется обычное окно командной строки. Дополнительные сведения см. в статье Использование набора инструментов MSVC из командной строки. Рекомендуется использовать ярлык командной строки разработчика вместо создания собственного.

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

Если вы установили Visual Studio 2017 или более поздней версии в Windows 10 или более поздней версии, откройте меню "Пуск" и выберите Все приложения. Прокрутите вниз и откройте папку Visual Studio (не приложение Visual Studio). Выберите элемент Командная строка разработчика для VS, чтобы открыть окно командной строки.

Если вы установили Microsoft Visual C++ Build Tools 2015 в Windows 10 или более поздней версии, откройте меню Пуск и выберите Все приложения. Прокрутите вниз и откройте папку Microsoft Visual C++ Build Tools. Выберите элемент Командная строка Native Tools x86 Visual C++ 2015, чтобы открыть окно командной строки.

Можно также ввести "командная строка разработчика" в строке поиска в Windows и выбрать командную строку, которая соответствует установленной версии Visual Studio. Откройте окно командной строки с помощью ярлыка.

Затем убедитесь в том, что командная строка разработчика Visual C++ настроена правильно. В окне командной строки введите cl и убедитесь в том, что выходные данные выглядят примерно так:

Возможно, существуют различия в текущем каталоге или номерах версий. Эти значения зависят от версии Visual C++ и установленных обновлений. Если приведенный выше результат похож на отображаемый, можно приступать к сборке программ C или C++ в командной строке.

В зависимости от версии Windows, установленной на компьютере, и конфигурации системы безопасности может потребоваться правой кнопкой мыши открыть контекстное меню для ярлыка командной строки разработчика и выбрать пункт Запуск от имени администратора, чтобы успешно выполнить сборку и запуск программы, созданной в этом пошаговом руководстве.

Создание файла исходного кода на языке Visual C++ и его компиляция из командной строки

В окне командной строки разработчика введите md c:\hello , чтобы создать каталог, а затем введите cd c:\hello , чтобы перейти к этому каталогу. В этом каталоге создаются файл исходного кода и скомпилированная программа.

В окне командной строки введите notepad hello.cpp .

Когда Блокнот предложит создать файл, выберите Да. Откроется пустое окно Блокнота, в котором можно ввести код для файла hello.cpp.

В окне блокнота введите следующие строки кода:

Это простая программа, которая выведет одну строку текста на экран, а затем завершит работу. Для сведения числа ошибок к минимуму скопируйте этот код и вставьте его в Блокнот.

Сохраните файл. В Блокноте, в меню Файл выберите Сохранить.

Поздравляем, вы создали исходный файл C++ hello.cpp, который готов к компиляции.

Вернитесь к окну командной строки разработчика. Введите dir в командной строке, чтобы получить список содержимого каталога c:\hello. Вы увидите исходный файл hello.cpp в списке каталогов, который выглядит примерно так:

Даты и некоторые другие данные будут отличаться на вашем компьютере.

Если файл исходного кода hello.cpp не отображается, убедитесь, что текущий рабочий каталог в командной строке — это созданный вами каталог C:\hello . Это должен быть каталог, в который вы сохранили файл исходного кода. Также убедитесь, что файл исходного кода был сохранен с расширением имени файла .cpp , а не .txt . Если открыть Блокнот из командной строки с помощью команды notepad hello.cpp , файл исходного кода автоматически сохраняется в текущем каталоге в виде файла .cpp . Если Блокнот открыть другим способом, его поведение также будет другим. По умолчанию Блокнот добавляет расширение .txt в новые файлы при их сохранении. Кроме того, файлы по умолчанию сохраняются в каталоге Документы. Чтобы сохранить файл с расширением .cpp в Блокноте, выберите Файл > Сохранить как. В диалоговом окне Сохранение файла перейдите к папке C:\hello в элементе управления иерархического представления каталогов. Затем в раскрывающемся списке Сохранить как выберите вариант Все файлы (*.*) . Введите hello.cpp в элемент управления "Поле ввода" Имя файла и нажмите кнопку Сохранить, чтобы сохранить файл.

В командной строке разработчика введите cl /EHsc hello.cpp , чтобы скомпилировать свою программу.

Компилятор cl.exe создаст OBJ-файл, содержащий скомпилированный код, а затем запустит компоновщик для создания исполняемой программы с именем hello.exe. Это имя отображается в строках информации, выводимой компилятором. Выходные данные компилятора должны выглядеть следующим образом:

Чтобы запустить программу hello.exe, в командной строке введите hello .

Программа выводит следующий текст и закрывается:

Поздравляем, вы скомпилировали и запустили программу C++ с помощью средств командной строки.

Следующие шаги

Этот пример "Hello, World" является самой простой программой C++. Реальные программы обычно имеют файлы заголовков, дополнительные исходные файлы и ссылки на библиотеки.

Вы можете использовать шаги, описанные в этом пошаговом руководстве по C++, для создания собственного кода, чтобы не вводить приведенный пример. Эти шаги также позволяют собрать множество примеров кода C++, которые можно найти в других местах. Вы можете разместить исходный код и собрать приложения в любом доступном для записи каталоге. По умолчанию интегрированная среда разработки Visual Studio создает проекты в папке пользователя во вложенной папке source\repos. Более старые версии могут помещать проекты в папку Документы\Visual Studio <version>\ Проекты*.

Чтобы скомпилировать программу с дополнительными файлами исходного кода, введите их все в командной строке, например:

cl /EHsc file1.cpp file2.cpp file3.cpp

Параметр командной строки /EHsc указывает компилятору на необходимость стандартной обработки исключений C++. В противном случае созданные исключения могут привести к неуничтоженным объектам и утечкам ресурсов. Дополнительные сведения см. в статье /EH (модель обработки исключений).

При указании дополнительных исходных файлов компилятор использует первый входной файл для создания имени программы. В этом случае выводится программа с именем file1.exe. Чтобы изменить имя на program1.exe, добавьте параметр компоновщика /out:

cl /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe

Чтобы автоматически перехватывать другие ошибки программирования, рекомендуется выполнить компиляцию с помощью порога предупреждений /W3 или /W4:

cl /W4 /EHsc file1.cpp file2.cpp file3.cpp /link /out:program1.exe

В компиляторе cl.exe есть множество дополнительных параметров. Их можно применять для создания, оптимизации, отладки и анализа кода. Чтобы просмотреть краткий список, введите cl /? в командной строке разработчика. Можно также выполнять компиляцию и компоновку отдельно и применять параметры компоновщика в более сложных сценариях сборки. Дополнительные сведения о параметрах и использовании компилятора и компоновщика см. в справочнике по сборке для C/C++.

Для настройки и создания более сложных проектов в командной строке можно использовать NMAKE и файлы makefile, MSBuild и файл проекта или CMake. Дополнительные сведения об использовании этих средств см. в разделах Справочник по NMAKE, MSBuild и Проекты CMake в Visual Studio.

Языки C и C++ похожи, но имеют различия. Компилятор MSVC использует простое правило для определения языка, используемого при компиляции кода. По умолчанию компилятор MSVC рассматривает файлы с расширением .c как исходные файлы на языке С, а файлы с расширением .cpp — как исходные файлы на языке С++. Если указан параметр компилятора /TP, компилятор будет рассматривать все файлы как исходные файлы на языке С++ вне зависимости от расширения.

Компилятор MSVC содержит библиотеку времени выполнения C (CRT), которая соответствует стандарту ISO C99 с небольшими исключениями. Переносимый код обычно компилируется и выполняется, как ожидалось. Некоторые устаревшие функции библиотеки и несколько имен функций POSIX не рекомендуется использовать в компиляторе MSVC. Функции поддерживаются, но предпочтительные имена изменились. Дополнительные сведения см. в статьях Функции безопасности в CRT и Предупреждение компилятора (уровень 3) C4996.

Перед написанием нашей первой программы мы еще должны кое-что узнать.

Теория

Во-первых, несмотря на то, что код ваших программ находится в файлах .cpp, эти файлы добавляются в проект. Проект содержит все необходимые файлы вашей программы, а также сохраняет указанные вами настройки вашей IDE. Каждый раз, при открытии проекта, он запускается с того момента, на котором вы остановились в прошлый раз. При компиляции программы, проект говорит компилятору и линкеру, какие файлы нужно скомпилировать, а какие связать. Стоит отметить, что файлы проекта одной IDE не будут работать в другой IDE. Вам придется создать новый проект (в другой IDE).

В-третьих, при создании нового проекта большинство IDE автоматически добавят ваш проект в рабочее пространство. Рабочее пространство — это своеобразный контейнер, который может содержать один или несколько связанных проектов. Несмотря на то, что вы можете добавить несколько проектов в одно рабочее пространство, все же рекомендуется создавать отдельное рабочее пространство для каждой программы. Это намного упрощает работу для новичков.

Традиционно, первой программой на новом языке программирования является всеми известная программа «Hello, world!». Мы не будем нарушать традиции 🙂

Пользователям Visual Studio

Для создания нового проекта в Visual Studio 2019, вам нужно сначала запустить эту IDE, затем выбрать "Файл" > "Создать" > "Проект" :


Дальше появится диалоговое окно, где вам нужно будет выбрать "Консольное приложение Windows" из вкладки "Visual C++" и нажать "ОК" :


Также вы можете указать имя проекта (любое) и его расположение (рекомендую ничего не менять) в соответствующих полях.

В текстовом редакторе вы увидите, что уже есть некоторый текст и код — удалите его, а затем напечатайте или скопируйте следующий код:

Читайте также: