Если вы искали фразу «как настроить Visual Studio Code для C», значит уже знакомо ощущение: код пишется, но сборка и запуск будто живут отдельно от редактора. Ниже разберём настройку так, чтобы в Visual Studio Code работали и компиляция, и запуск, и отладка C++.


Сначала простая правда про C++

Представьте конвейер:

1) Компилятор превращает C++-код в программу
2) Отладчик (например, GDB) помогает понять, где ошибка
3) VS Code — это “управляющий пульт”: он вызывает компилятор и отладчик, показывает подсказки и запускает вашу программу

Поэтому ключевой момент такой: без компилятора Visual Studio Code — это в лучшем случае “удобный блокнот”, а не полноценная среда разработки.


Что именно нужно установить

Минимальный набор

  • Visual Studio Code
  • Расширение C/C++ (от Microsoft)
  • Компилятор GCC под Windows (или Clang/MSVC, но здесь будет пример с GCC)
  • GDB для отладки (вместе с GCC обычно ставится отдельно)

С точки зрения Microsoft это всё относится к поддержке C/C++ в среде редактора: нужны инструменты и правильные настройки.


Установка Visual Studio Code

  1. Скачайте и установите Visual Studio Code.
  2. Откройте папку проекта (важно: настройки обычно живут рядом с проектом).

Дальше всё будет происходить в папке проекта через .vscode.


Какие плагины поставить для C++

В VS Code откройте панель расширений (Ctrl + Shift + X) и поставьте:

  • C/C++ от Microsoft
    Это основное расширение для cpp-разработки: IntelliSense, подсветка, конфигурации отладчика.
  • (опционально) дополнительные расширения, но для базовой задачи достаточно Microsoft-пакета.

В некоторых руководствах дополнительно встречается Code Runner (удобно запускать код “быстро”), но для “нормальной” C++ разработки важнее задачи/отладка.


Как установить GCC и GDB под Windows

Самый практичный путь для новичка — использовать msys2, потому что он даёт привычную среду для компиляции на Windows.

Шаг 1. Установите msys2

Например, установите в C:\Programs\msys64. Обычно при установке добавляют в PATH путь к mingw64\bin.

Проверьте в обычной консоли:
- команда path должна показывать нужный путь (это помогает понять, что инструменты “видны”).

Шаг 2. В msys2 поставьте компилятор и отладчик

В окне msys2 выполните:

pacman -Syuu
pacman -S mingw-w64-x86_64-gcc
pacman -S mingw-w64-x86_64-gdb

Проверьте:

g++ --version
gdb --version

Если версия показывает номер — значит GCC и GDB доступны.

Почему это важно

Потому что VS Code должен знать куда обращаться: в g++.exe для сборки и в gdb.exe для отладки.


Первичная проверка без VS Code

Создайте папку проекта, например C:\Projects.

1) Создайте hello.cpp:

#include <iostream>
int main() {
    std::cout << "Hello world!" << std::endl;
    return 0;
}

2) Скомпилируйте из командной строки:

g++ hello.cpp -o hello.exe

3) Запустите hello.exe.

Если это работает — ваш GCC реально готов. Тогда можно настраивать Visual Studio Code.


Настройка VS Code для компиляции и запуска C++

Теперь цель: чтобы по одной команде собиралось и чтобы по F5 отлаживалось.

Важный принцип

Обычно в VS Code в проекте создаётся папка:
- .\vscode

В ней лежат:
- tasks.json — сборка
- launch.json — отладка
- settings.json — ассоциации/мелкие настройки
- c_cpp_properties.json — IntelliSense и путь к include

Ниже — рабочие шаблоны (под пример с msys2 в C:\Programs\msys64).


tasks.json для сборки

Идея: хотим сборку по Ctrl + Shift + B.

Создайте C:\Projects\<ваш_проект>\.vscode\tasks.json:

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "g++.exe build active file",
      "command": "C:/Programs/msys64/mingw64/bin/g++.exe",
      "args": [
        "-std=c++17",
        "-g",
        "${file}",
        "-o",
        "${fileDirname}\\${fileBasenameNoExtension}.exe"
      ],
      "options": {
        "cwd": "C:\\Programs\\msys64\\mingw64\\bin"
      },
      "problemMatcher": [
        "$gcc"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

Обратите внимание:
- -std=c++17 — стандарт C++
- -g — включение отладочной информации (чтобы GDB мог подсветить строки)

Иногда полезно очищать вывод терминала перед сборкой. Это можно добавить в секцию presentation (опционально), например "clear": true.


launch.json для отладки через GDB

Создайте C:\Projects\<ваш_проект>\.vscode\launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "g++.exe build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "C:\\Programs\\msys64\\mingw64\\bin\\gdb.exe",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "g++.exe build active file",
      "internalConsoleOptions": "neverOpen"
    }
  ]
}

Что тут происходит:
- VS Code сначала вызывает сборку через preLaunchTask
- потом запускает .exe под GDB
- отладчик берётся из miDebuggerPath


settings.json для ассоциаций

Создайте C:\Projects\<ваш_проект>\.vscode\settings.json (минимальный вариант):

{
  "files.associations": {
    "ostream": "cpp",
    "iostream": "cpp",
    "iomanip": "cpp",
    "chrono": "cpp",
    "iosfwd": "cpp",
    "thread": "cpp",
    "array": "cpp",
    "string_view": "cpp",
    "initializer_list": "cpp",
    "utility": "cpp",
    "valarray": "cpp",
    "optional": "cpp",
    "sstream": "cpp"
  }
}

Это помогает IntelliSense правильно распознавать стандартные заголовки.


c_cpp_properties.json для IntelliSense

Создайте C:\Projects\<ваш_проект>\.vscode\c_cpp_properties.json:

{
  "configurations": [
    {
      "name": "Win32",
      "includePath": [
        "${workspaceFolder}/**",
        "C:/Programs/msys64/mingw64/include/**"
      ],
      "defines": [
        "_DEBUG",
        "UNICODE",
        "_UNICODE"
      ],
      "windowsSdkVersion": "8.1",
      "compilerPath": "C:\\Programs\\msys64\\mingw64\\bin\\g++.exe",
      "cStandard": "c11",
      "cppStandard": "c++17",
      "intelliSenseMode": "gcc-x86"
    }
  ],
  "version": 4
}

Смысл:
- compilerPath — куда “смотреть” IntelliSense
- includePath — где лежат заголовки стандартной библиотеки и ваши файлы


Проверка. Что должно заработать

1) Откройте main.cpp
2) Нажмите Ctrl + Shift + B
3) Должен появиться main.exe
4) Нажмите F5
5) Должна стартовать отладка и работать шаги по коду


Быстрый запуск для спортивного программирования

Иногда хочется не “идеальную” отладку, а просто быстро проверить код: вставил → запустил → посмотрел.

Для этого используют Code Runner.

Как сделать запуск через терминал

В настройках включите:
- “Code Runner: Run in Terminal”

Как добавить флаг -std=c++14

Дело в том, что некоторые команды запускают GCC без нужного стандарта, и вы получите ошибки вида про расширенные инициализаторы.

Для settings.json через Code Runner обычно настраивают карту команд:

  • найдите “Code-runner: Executor Map”
  • нажмите “Edit in settings.json”
  • добавьте для cpp примерно так:
"code-runner.executorMap": {
  "cpp": "cd $dir && g++ -std=c++14 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
}

Тогда запуск “сразу” будет собираться с -std=c++14.


Как настроить C/C++ в VS Code на разных ОС

Коротко: логика одинаковая, меняются пути и инструменты.

Что меняется Windows (пример) Linux macOS
Компилятор GCC через msys2 обычно уже есть g++/clang++ чаще clang
Отладчик gdb.exe gdb часто lldb (зависит от настройки)
Путь к exe C:\... /... /...
tasks.json меняете command и аргументы меняете command меняете command

Поэтому правило такое: в tasks.json и launch.json вы просто подставляете ваш g++ и ваш GDB (или другой отладчик).


Visual Studio Code vs Visual Studio для C++

Если вы выбираете между двумя “Visual”:

Критерий Visual Studio Code Visual Studio
Нагрузка на систему обычно меньше часто больше
Подход лёгкий редактор + расширения полноценная IDE
Для C++ удобно собрать свою конфигурацию много “из коробки”
Когда выбирать если нужна гибкость и скорость если нужен большой набор инструментов сразу

Отсюда и ответ на частую мысль новичков: “Visual Studio ест ресурсы” — да, иногда VS Code оказывается проще и легче.


Если нет опыта. С чего начать

Сценарий из жизни: вы открываете проект, а VS Code подсвечивает ошибки и не запускает программу.

Правильный порядок такой:
1) Проверить g++ --version
2) Проверить gdb --version
3) Скомпилировать hello.cpp командой g++
4) Только потом — вставлять tasks.json и launch.json

Это снижает хаос: сначала работает компилятор, потом VS Code становится “панелью управления”.


Где здесь Visual и Code и C++

Чтобы всё связать в один цикл, удобно держать схему:

flowchart TD
  A[Файл .cpp в VS Code] --> B[tasks.json вызывает g++]
  B --> C[создаётся .exe]
  C --> D[launch.json вызывает gdb]
  D --> E[отладка, шаги, переменные]

Именно поэтому настройки задач и запуска — это сердце темы “как настроить visual studio code для c”.


Короткий итог

  • Поставьте Visual Studio Code и расширение C/C++
  • Установите GCC и GDB (на Windows через msys2 — рабочий вариант)
  • Создайте .vscode с tasks.json и launch.json
  • Добавьте c_cpp_properties.json для нормального IntelliSense
  • При необходимости — настройте Code Runner и добавьте -std=c++14

После этого C++ разработка перестаёт быть “танцем с бубном” и превращается в обычный цикл: написать → собрать → запустить → отладить.