- Что потребуется
- Установите Visual Studio Code и (при необходимости) команду code
- Проверьте Clang
- Установите расширение C/C++ в VS Code
- Создайте проект и базовые файлы
- Настройка сборки и запуска в VS Code (через tasks.json)
- Запуск из терминала (быстрый способ проверки)
- Debug: запуск отладчика (launch.json)
- Настройка IntelliSense (c_cpp_properties.json)
- Проверка, что всё настроено
- Если “не находится compiler” или сборка ломается
- Полезный “рабочий минимум” структуры проекта
Ниже - рабочий путь “с нуля”: установить нужные инструменты, подключить расширения в VS Code, собрать и запустить простой C-проект через Clang (компилятор, который обычно уже есть на macOS через Xcode Command Line Tools).
Что потребуется
- Visual Studio Code для macOS
- Clang (компилятор C на macOS)
- Расширение C/C++ для VS Code от Microsoft
- Терминал (zsh по умолчанию)
Установите Visual Studio Code и (при необходимости) команду code
- Скачайте VS Code с официального сайта и перетащите приложение в Applications.
- Чтобы запускать VS Code из терминала командой
code: - откройте VS Code
- откройте Command Palette:
Cmd+Shift+P - выполните команду Shell Command: Install 'code' command in PATH
- перезапустите терминал
После этого удобно делать code . в любой папке.
Проверьте Clang
Откройте Terminal и выполните:
clang --version
Если команда не найдена, установите инструменты командной строки Xcode:
xcode-select --install
Снова проверьте:
clang --version
Установите расширение C/C++ в VS Code
- Откройте VS Code
- Перейдите во вкладку Extensions
- Найдите C/C++ (обычно это расширение
ms-vscode.cpptools) - Установите
Создайте проект и базовые файлы
Сделайте рабочую папку, например projects, и папку для C-кода:
mkdir -p ~/projects/c
cd ~/projects/c
code .
Создайте файл main.c с простым кодом:
#include <stdio.h>
int main(void) {
printf("Hello, C on macOS!\n");
return 0;
}
Настройка сборки и запуска в VS Code (через tasks.json)
Пока отдельный проектный конфиг не сделан, VS Code попросит выбрать компилятор и создаст настройки автоматически, но для предсказуемости лучше понимать, что именно будет происходить.
Быстрый запуск
- Откройте
main.c(он должен быть активным файлом) - Нажмите Run (зелёная кнопка/Play) в правом верхнем углу
- Выберите сборку и отладку для активного файла (обычно варианты формата C/C++: clang ...)
При первом запуске в папке .vscode появится tasks.json - там будет команда компиляции.
Что обычно окажется внутри tasks.json
Суть такая: сборка выполняется командой clang и результат кладётся в файл рядом с исходником (или в папку проекта - зависит от шаблона).
Ориентир по логике (пример, точные пути могут отличаться):
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: clang build active file",
"command": "/usr/bin/clang",
"args": [
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"group": { "kind": "build", "isDefault": true },
"problemMatcher": ["$gcc"]
}
],
"version": "2.0.0"
}
Запуск из терминала (быстрый способ проверки)
Чтобы убедиться, что компилятор живой и проект собирается, можно просто собрать вручную:
clang main.c -o main
./main
Если это работает - проблема почти всегда в настройках VS Code, а не в системе.
Debug: запуск отладчика (launch.json)
Когда вы запускаете Debug для main.c, расширение создаёт launch.json. Его смысл простой:
- программа запускается из скомпилированного файла
- сборка делается перед запуском (через
preLaunchTask) - отладка идёт через
lldb(это штатная связка на macOS)
Часто выглядит примерно так (как шаблон):
preLaunchTaskдолжен ссылаться на задачу изtasks.json(label)programдолжен указывать на скомпилированный бинарникcwdзадаёт рабочую директорию
Настройка IntelliSense (c_cpp_properties.json)
Чтобы подсказки по типам и “Go to Definition” работали нормально, расширение обычно само создаёт конфиг:
.vscode/c_cpp_properties.json
Обычно там важны:
- compilerPath (путь к компилятору)
- cStandard (стандарт C)
- intelliSenseMode (режим для macOS/архитектуры)
Пример структуры:
{
"configurations": [
{
"name": "Mac",
"compilerPath": "/usr/bin/clang",
"cStandard": "c11",
"intelliSenseMode": "macos-clang-arm64",
"includePath": ["${workspaceFolder}/**"]
}
],
"version": 4
}
Если у вас другая архитектура (например, Intel), режим может отличаться - VS Code обычно подхватывает сам, но если нет, поправьте.
Проверка, что всё настроено
В VS Code у вас должно быть:
- файл main.c
- в .vscode/ есть tasks.json (для сборки)
- при отладке появится launch.json
- есть c_cpp_properties.json (для подсказок)
Минимальный итог:
- Run собирает main.c
- в Debug Console или Terminal появляется вывод Hello, C on macOS!
Если “не находится compiler” или сборка ломается
Самые частые причины:
- Clang не установлен или не доступен из PATH (решение - xcode-select --install)
- VS Code использует неверный путь к компилятору (проверьте compilerPath в c_cpp_properties.json)
- preLaunchTask в launch.json не совпадает по label с задачей в tasks.json
Если сборка проходит в терминале (clang main.c -o main) - смотрите именно соответствие конфигов VS Code между tasks.json и launch.json.
Полезный “рабочий минимум” структуры проекта
Рекомендуемый формат для простых учебных проектов:
c/
main.c
.vscode/
tasks.json
launch.json
c_cpp_properties.json
Так VS Code стабильно понимает, чем компилировать и как запускать.