Как запустить программу c в visual studio code

Visual Studio Code — редактор на основе платформы Electron, который можно использовать как минималистичную IDE. Мне требовалась поддержка C++17 и переносимость всего «на флешке». Что меня приятно удивило, так это «шустрость» VSCode.

Итак, порядок действий, предпринятых мной был таков:

  1. Скачать VSCode в архиве (в моём случае это была версия 1.27.1 для Windows/x64). Распаковать его, допустим, в папку vscode. Внимание! Путь к vscode не должен содержать не-ASCII символы и пробелы.
  2. Создать пустую папку vscode/data. Там будут плагины и общие настройки. При обновлении VSCode можно просто распаковать новую версию и переместить туда свою папку data из старой.
  3. Распаковать сборку MinGW рядом с vscode, допустим, в папку mingw (mingw/bin содержит g++.exe). В качестве таковой я брал сборку отсюда, там уже есть Boost и ряд других библиотек. Я к ним ещё добавляю Eigen и кое-что своё. Добавляю, просто складывая соответствующие папки в mingw/include.
  4. Создать рядом с vscode пустую папку для примеров. Допустим, cpp.
  5. Запустить VSCode (vscode/code.exe) и установить плагин C/C++ for Visual Studio Code от Microsoft (с Microsoft Intellisense).
  6. Открыть в VSCode папку cpp.
  7. Настройки создаются в виде JSON-файлов в папке cpp/.vscode. Ниже я опишу возможное их содержимое. Их можно создать непосредственно в VSCode, заполнить в нём же, и затем перезапустить VSCode.
  8. После того, как файлы настроек созданы, и VSCode перезапущен, следует протестировать его. Создать cpp/test.cpp с произвольным содержимым на C++ (например, helloworld). Terminal/Run build task… или Ctrl+Shift+B должно запускать сборку и завершаться без ошибок. F5 запускает сборку и результат в отладчике (gdb). Заголовочные файлы должны успешно открываться (правой кнопкой мыши и Go to definition). Intellisense должен работать адекватно.
  9. Полученный «пакет» в составе vscode, mingw, cpp можно упаковать в архив и развернуть на другой системе или просто скопировать на внешний носитель и запускать с него.

Итак, файлы настроек.

Как программировать на С++ в Visual Studio Code на Windows 10

Плагин C/C++ использует файл c_cpp_properties.json.
Его содержимое в моём случае:

< «configurations»: [ < «name»: «MinGW», «intelliSenseMode»: «gcc-x64», «compilerPath»: «$\..\mingw\bin\g++.exe», «cppStandard»: «c++17», «cStandard»: «c11», «includePath»: [ «$», «$\..\mingw\include» ], «defines»: [ «__cplusplus=201703L» ] > ], «version»: 4 >

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

Для сборки требуется создать «задачу сборки». В простейшем случае это компиляция одной единицы трансляции (cpp-файла) сразу в исполняемый файл (в моём случае всегда один и тот же с названием lab.exe).

Язык Си: компиляция в Visual Studio Code ПРОСТО


Описание задач сборки располагается в файле tasks.json. Его содержимое в моём случае:

< // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format «version»: «2.0.0», «tasks»: [ < «label»: «build lab», «type»: «shell», «command»: «$\..\mingw\bin\g++», «args»: [ «-g», «-Og», // «debug» build //»-O3″, «$», «-march=native», «-Wall», «-pedantic», «-std=c++17», «-olab.exe» ], «group»: < «kind»: «build», «isDefault»: true >> ] >

Наконец, описание запуска отладчика по F5 располагается в launch.json.
Его содержимое в моём случае:

< // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 «version»: «0.2.0», «configurations»: [ < «name»: «(gdb) Launch», «type»: «cppdbg», «request»: «launch», «program»: «$\lab.exe», «args»: [], «stopAtEntry»: false, «cwd»: «$», «environment»: [], «externalConsole»: true, «MIMode»: «gdb», «miDebuggerPath»: «$\..\mingw\bin\gdb.exe», «setupCommands»: [ < «description»: «Enable pretty-printing for gdb», «text»: «-enable-pretty-printing», «ignoreFailures»: true >, < «description»: «Enable break on exception for gdb», «text»: «catch throw», «ignoreFailures»: true >], «preLaunchTask»: «build lab» > ] >

Читайте также:
Как пользоваться программой clickermann

Вторая команда catch throw активирует перехват исключений отладчиком gdb.
Вообще, к сожалению, я не могу сказать, что с отладкой всё хорошо: есть ряд странностей. Например, точка останова, поставленная в одном месте, может сработать ниже (как будто поставленная в другом месте — может быть, это можно исправить, если заменить -Og на -O0). Точку останова нельзя поставить внутри шаблона (не срабатывает вообще). Не даёт ставить новые точки останова во время отладки. Если во время отладки нажать паузу, то продолжение может не срабатывать (останется только остановить исполнение).

Для меня проблемы с отладчиком не являются критичными, так как я привык к отладке через проверку условий и протоколирование. Но тем, кто привык к отладчику в «нормальной» Visual Studio такое, конечно, будет не по нраву.

UPD. Если всё это запускать на Windows 10, то в качестве терминала может быть по умолчанию выбран PowerShell. Почему-то он «не понимает» относительные пути через .. и не может запустить компилятор. В этом случае рекомендуется заменить его на cmd.exe (в VSCode можно выбрать терминал).

UPD2. Замена флага оптимизации -Og на -O0 всё же помогает отладчику, по крайней мере, точки останова не «убегают» с тех мест, куда они были поставлены.

Источник: evetro.wordpress.com

Как построить и запустить код C ++ в Visual Studio Code?

Это отлично работает, но когда я хочу запустить файл, мне нужно запустить exe из командной строки. Возможно ли это сделать и в задаче? Итак, если он успешно завершает работу, он выполняет другую задачу?

Arn Vanhoutte 12 окт. 2016, в 14:55
Поделиться
Поделиться:
visual-studio-code

3 ответа

Лучший ответ

Вы можете настроить несколько задач в Visual Studio Code, один из которых позволит вам создать исполняемый файл, а другой выполнит ваш исполняемый файл. Дополнительно вы также можете посмотреть код Visual Studio «Режим запуска» (см. здесь). Если вы используете «Режим запуска», вы должны иметь возможность настроить код Visual Studio для создания своего исполняемого файла и затем запустить его. Я не очень знаком с «Run Mode», поэтому подробно расскажу, как определить несколько задач для достижения аналогичного результата.

Отказ от ответственности: Visual Studio Code не поддерживает задачи, которые используют разные команды оболочки (см. здесь).

Это правильно. В текущем состоянии Visual Studio Code не имеет «родной» поддержки для определения задач, которые используют разные команды оболочки.

Отказ от ответственности: панель задач-задач Visual Studio не позволит вам вносить интерактивный вклад в вашу программу.

Если ваша программа зависит от пользовательского ввода (например, от stdin), вам, вероятно, лучше не использовать код Visual Studio для запуска исполняемого файла. В принципе, нам нужно будет определить две задачи, одна из которых будет задачей сборки, другая — нашей задачей запуска.

Увидев, что код Visual Studio не имеет большой поддержки для определения нескольких задач, каждый из которых использует разные команды оболочки, нам нужно изменить наше свойство tasks.json «command» на cmd (или sh , если на Linux/macOS). Нам также нужно установить для свойства «args» значение [/C] ( [-c] , если на Linux/macOS). Причина, по которой мы это делаем, состоит в том, что мы хотим, чтобы каждая из задач, которые мы собираемся определить, должна быть передана в качестве аргументов для нового экземпляра оболочки. Следующим шагом является определение задач сборки и запуска. Когда мы это сделаем, нам нужно убедиться, что мы поместим команду, которую хотим запустить, в качестве аргумента задачи. Например:

< «taskName»: «build», «args»: [«gcc», «-Wall», «$», «-o», «$.exe», «-pedantic»] >

Наконец, что мы сделаем, добавим свойство «isBuildCommand» к нашей задаче сборки (и убедитесь, что оно true ), а также добавим свойство «isTestCommand» к нашей задаче запуска (и, опять же, убедитесь, что он true ). После всего этого наш tasks.json файл может выглядеть примерно так:

Читайте также:
4K video downloader похожие программы

< «version»: «0.1.0», «command»: «cmd», «args»: [«/C»], «isShellCommand»: true, «showOutput»: «always», «suppressTaskName»: true, «tasks»: [ < «taskName»: «build», «args»: [«gcc», «-Wall», «$», «-o», «$.exe», «-pedantic»], «isBuildCommand»: true >, < «taskName»: «run», «args»: [«$.exe»], «isTestCommand»: true > ] >

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

[«gcc -Wall $ -o $.exe -pedantic»]

Примечание. Если вы хотите использовать вызовы с помощью быстрых клавиш, у вас есть команды редактора «workbench.action.tasks.build» и «workbench.action.tasks.test» . Если вам нужен пример привязки ключей к этим командам, вот пример того, как я их сопоставил в файле keybindings.json :

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

Источник: overcoder.net

DevDotNet.ORG

Embedded Systems, IoT, .NET, Docker, Hosting, Linux

Создание первого приложения на .NET 5.0 в Visual Studio Code для ARM

Создано автором Anton 22.02.2021 в .NET

В этой публикации вы узнаете, как создать первое консольное приложение на .NET 5.0 в Visual Studio Code, затем его скомпилировать для различных платформ(ARM32, ARM64), с дальнейшем запуском на платах Banana Pi BPI-M64 и Cubietruck.

Visual Studio Code

Visual Studio Code — редактор исходного кода, разработанный Microsoft для Windows, Linux и macOS. Позиционируется как «лёгкий» редактор кода для кроссплатформенной разработки веб- и облачных приложений. Включает в себя отладчик, инструменты для работы с Git, подсветку синтаксиса, IntelliSense и средства для рефакторинга.

Имеет широкие возможности для кастомизации: пользовательские темы, сочетания клавиш и файлы конфигурации. Распространяется бесплатно, разрабатывается как программное обеспечение с открытым исходным кодом, но готовые сборки распространяются под проприетарной лицензией. Многие возможности Visual Studio Code недоступны через графический интерфейс, зачастую они используются с помощью различных команд или JSON-файлы (например, пользовательские настройки).

Существуют сборки для ОС:

  • Windows(64-bit,32-bit,ARM)
  • Debian(64-bit,32-bit,ARM)
  • Ubuntu(64-bit,32-bit,ARM)
  • macOS10.10+

Загрузка Visual Studio Code доступна по ссылке.

Установка SDK .NET, Visual Studio Code и расширения поддержки C#

SDK .NET 5.0

Первым делом необходимо установить SDK .NET 5.0. Перейдем на страницу Download .NET 5.0, выберем SDK 5.0.103 => Installers => x64 (для Windows x64). Загрузим пакет и установим.

После установки откроем командную строку, кнопка «Пуск», пункт меню «Выполнить» команда CMD , укажем команду: dotnet —info

Windows x64: dotnet —info

D:>dotnet —info Пакет SDK для .NET (отражающий любой global.json): Version: 5.0.103 Commit: 72dec52dbd Среда выполнения: OS Name: Windows OS Version: 6.1.7601 OS Platform: Windows RID: win7-x64 Base Path: C:Program Filesdotnetsdk5.0.103 Host (useful for support): Version: 5.0.3 Commit: c636bbdc8a .NET SDKs installed: 5.0.103 [C:Program Filesdotnetsdk] .NET runtimes installed: Microsoft.AspNetCore.All 2.1.11 [C:Program FilesdotnetsharedMicrosoft.AspN etCore.All] . Microsoft.WindowsDesktop.App 5.0.0-rc.2.20475.6 [C:Program Filesdotnetshare dMicrosoft.WindowsDesktop.App] Microsoft.WindowsDesktop.App 5.0.0 [C:Program FilesdotnetsharedMicrosoft.W indowsDesktop.App] Microsoft.WindowsDesktop.App 5.0.3 [C:Program FilesdotnetsharedMicrosoft.W indowsDesktop.App] To install additional .NET runtimes or SDKs: https://aka.ms/dotnet-download

Visual Studio Code

Для загрузки Visual Studio Code перейдем на страницу загрузки и выберем нужный вариант пакета. Очень удобно использовать программы в виде .zip (VSCode-win32-x64-1.53.2.zip) архива, распаковал и запустил. После загрузки и распаковки архива в папку, запустим среду: Code.exe .

.NET Visual Studio Code ARM

Visual Studio Code

Расширение поддержки C#

Установим расширение C# for Visual Studio Code (powered by OmniSharp). Для этого нажмем на закладке: 1. Extensions, затем 2. в поле ввода напишем название расширения C# for Visual Studio Code, выберем пункт 3. C# for Visual Studio Code (powered by OmniSharp). 4.

Перейдем на страницу описание расширения и нажмем на кнопку Install.

.NET Visual Studio Code ARM

C# for Visual Studio Code (powered by OmniSharp)

После установки можно выполнить настройку расширения:

.NET Visual Studio Code ARM

После установки расширения закроем Visual Studio Code, необходима перезагрузка.

Создание консольного приложения

Перейдем в папку с проектам Projects и запустим командную строку. В командной стоке выполним команду: dotnet new console -o СonsoleApp50 , где СonsoleApp50 — название нового проекта.

Читайте также:
Мультимедиа это программа хранитель экрана

.NET Visual Studio Code ARM

После выполнения команды будет создана папка ProjectsСonsoleApp50, в этой папке будет расположен наш проект: папка — obj, файл программы — Program.cs и файл проекта — СonsoleApp50.csproj.

Добавление логики в консольное приложение

Просто запустить «Hello World!» на платформе ARM не интересно, поэтому добавим дополнительную логику в новое приложение. Приложение будет выводить информацию о системе в которой оно работает. Запустим Visual Studio Code и откроем папку с проектом ProjectsСonsoleApp50.

.NET Visual Studio Code ARM

Открытие проекта в Visual Studio Code

Далее, откроем меню Terminal => New Terminal:

.NET Visual Studio Code ARM

Укажем команду сборки проекта: dotnet build

.NET Visual Studio Code ARM

Затем команду для запуска приложения: dotnet run .

.NET Visual Studio Code ARM

В функцию Main() поместим следующий код с вызовом исключения для проверки режима отладки (проект СonsoleApp50 на GitHub):

static void Main(string[] args) < Console.WriteLine(«Test .NET console application!»); var str_Framework=RuntimeInformation.FrameworkDescription; var str_OSArch=RuntimeInformation.OSArchitecture.ToString(); var str_OSDesc= RuntimeInformation.OSDescription; var str_OSIdent=RuntimeInformation.RuntimeIdentifier; //output Console.WriteLine($»Версия .NET: «); Console.WriteLine($»Архитектура ОС: «); Console.WriteLine($»Версия ОС: «); Console.WriteLine($»Идентификатор ОС: «); //error Console.WriteLine(«Генерировать исключение [yes/No]? «); var input_key=Console.ReadKey().Key; Console.Write(«n»); if (input_key==ConsoleKey.Y) < Console.Write(«Генерация исключения»); throw new Exception(«А вот и ошибочка!»); >Console.WriteLine(«Завершение работы программы»); >

Запустим проект, меню Run => Start Debugging.

.NET Visual Studio Code ARM

Исключение: ошибка доступа к консоли

Приложение выдало исключение, но не то, которое было запланированно. Ошибка заключается в невозможности чтения данных с консоли. Для решение проблемы необходимо изменить в файле ProjectsСonsoleApp50.vscodelaunch.json, конфигурации запуска проекта с «console»: «internalConsole» на «console»: «integratedTerminal».

.NET Visual Studio Code ARM

Снова запускаем проект, и переходим на закладку TERMINAL. Нажимаем «Y» и вызываем исключение.

.NET Visual Studio Code ARM

Отлично, отладка работает!

Компиляция приложения под разные архитектуры

Компилирование выполняется из командной строки, командой dotnet build , необходимые архитектуры задаются ключами. В .NET существуют константы для обозначения архитектуры исполнения Runtime Identifiers (RIDs). Из каталога нам потребуются идентификаторы:

  • linux-arm — архитектура ARM32, для запуска приложения на Cubietruck.
  • linux-arm64 — архитектура ARM64, для запуска приложения на Banana Pi BPI-M64.

Итоговый вариант команды будет выглядеть так: dotnet build -r linux-arm и dotnet build -r linux-arm64 .

Выполним компиляцию под обе платформы:

.NET Visual Studio Code ARM

По пути ProjectsСonsoleApp50binDebugnet5.0 будут созданы две папки linux-arm и linux-arm64 для целевых платформ.

Воспользуемся бесплатным терминалом MobaXterm для копирования приложения на платы. Терминал MobaXterm — позволяет переносить целиком папку и выборочно файлы, существенно удобнее в работе по сравнению с PuTTY терминалом.

Скопируем папку linux-arm на плату Cubietruck, папку linux-arm64 на плату Banana Pi BPI-M64.

Запуск консольного приложения на Cubietruck

Для запуска .NET приложений на Cubietruck необходимо установить .NET Runtime, как это сделать в публикации — Установка .NET 5.0 для ARM на примере Banana Pi BPI-M64 и Cubietruck (Armbian, Linux). Скопируем содержимое папки ProjectsСonsoleApp50binDebugnet5.0linux-arm на Cubietruck по пути /root/linux-arm, зайдем в папку linux-arm и выполним команду: dotnet СonsoleApp50.dll .

Результат работы консольного приложения:

Запуск консольного приложения на Banana Pi BPI-M64

Для запуска .NET приложений на Banana Pi BPI-M64 необходимо установить .NET Runtime, как это сделать в публикации — Установка .NET 5.0 для ARM на примере Banana Pi BPI-M64 и Cubietruck (Armbian, Linux). Скопируем содержимое папки ProjectsСonsoleApp50binDebugnet5.0linux-arm64 на Banana Pi BPI-M64 по пути /root/linux-arm64, зайдем в папку linux-arm64 и выполним команду: dotnet СonsoleApp50.dll

Результат работы консольного приложения:

Приложения разработанные на .NET 5.0 успешно работают на архитектуре ARM32 и ARM64!

Литература

  • .NET RID Catalog — .NET fundamentals
  • Tutorial: Create a .NET console application using Visual Studio Code — .NET fundamentals
  • .NET 5 – How to start — Michal Bialecki Blog
  • Download Visual Studio Code
  • dotnet build — Builds a project and all of its dependencies. — .NET fundamentals
  • dotnet run — Runs source code without any explicit compile or launch commands.. — .NET fundamentals
  • Visual Studio Code — Wikipedia
  • C# for Visual Studio Code (powered by OmniSharp) — Visual Studio Code
  • ReadKey not working in .net core — Stack Overflow
  • Console (terminal) window — github.com/OmniSharp
  • Проект СonsoleApp50 на GitHub
  • Терминал Mobatek MobaXterm Home Edition (Free) — Download Page

Источник: devdotnet.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru