Ошибка «make не является внутренней или внешней командой»: причины и решение

Сообщение «"make" не является внутренней или внешней командой, исполняемой программой или пакетным файлом» появляется в командной строке Windows в тот момент, когда система не находит исполняемый файл make.exe ни в текущем каталоге, ни в папках, перечисленных в переменной окружения PATH. Чаще всего это происходит при первой попытке собрать проект с помощью Makefile — например, при сборке C/C++-проекта, установке зависимостей или запуске скриптов из репозитория.

Причина почти всегда одна из двух: утилита make вообще не установлена в системе, либо она установлена, но путь к ней не прописан в переменных окружения. Ниже разберём, как проверить каждую из этих причин и устранить проблему пошагово.

Почему Windows не находит команду make

Командная строка ищет вводимую команду по строго определённому алгоритму: сначала в текущей папке, затем во всех каталогах из списка PATH. Если make.exe нигде не обнаружен, выводится именно та ошибка, которую вы видите. В отличие от Linux, где make обычно предустановлен, в Windows эта утилита отсутствует изначально.

Типичные сценарии возникновения ошибки:

  • 🔧 Утилита make никогда не устанавливалась — её просто нет на диске.
  • 📁 Программа установлена (например, вместе с MinGW или MSYS2), но папка bin не добавлена в PATH.
  • 🔄 PATH был изменён, но окно командной строки открыто до изменения и использует старые переменные.
  • ✏️ В PATH допущена опечатка: лишний пробел, неверный разделитель или несуществующий путь.

Шаг 1. Проверяем, установлен ли make

Прежде чем что-то менять, убедитесь, что проблема действительно в отсутствии утилиты. Откройте командную строку и выполните:

where make

Если команда вернула сообщение о том, что файлы не найдены, — make не установлен или не прописан в PATH. Если же выводится путь к make.exe, но ошибка всё равно возникает, возможно, вы работаете в другом терминале (например, PowerShell с иной сессией) или переменные окружения не обновились.

Дополнительно стоит проверить текущее значение PATH командой:

echo %PATH%

Просмотрите вывод: есть ли там папка, где предположительно лежит make? Это быстрый способ отличить проблему установки от проблемы конфигурации.

Шаг 2. Устанавливаем make в Windows

Существует несколько рабочих способов получить make в Windows. Выбор зависит от того, что у вас уже установлено и для каких задач нужна утилита.

  • 📦 Chocolatey — если установлен пакетный менеджер, выполните choco install make от имени администратора.
  • 🛠️ MSYS2 — среда с полным набором GNU-утилит; make ставится командой pacman -S make в терминале MSYS2.
  • ⚙️ MinGW — содержит mingw32-make.exe, который работает аналогично, но вызывается другим именем.
  • 🍦 Scoop — альтернативный менеджер пакетов: scoop install make.
📊 Каким способом вы устанавливали make?
Chocolatey
MSYS2
MinGW / mingw32-make
Ещё не устанавливал

Обратите внимание на нюанс с MinGW: там утилита называется mingw32-make.exe. Если запустить просто make, ошибка сохранится. Либо вызывайте полное имя, либо создайте копию файла с именем make.exe в той же папке — это распространённая практика.

⚠️ Внимание: скачивайте make и сопутствующие инструменты только с официальных источников проектов (сайты MSYS2, MinGW, Chocolatey). Сторонние сборки с неизвестных ресурсов могут содержать вредоносный код.

Шаг 3. Добавляем путь к make в PATH

После установки нужно сообщить системе, где искать утилиту. Порядок действий в Windows 10 и 11 одинаков:

Параметры → Система → О системе → Дополнительные параметры системы → Переменные среды

В разделе «Системные переменные» (или «Переменные среды пользователя», если права администратора недоступны) найдите переменную Path, нажмите «Изменить» и добавьте новую строку с путём к папке, содержащей make.exe. Для MSYS2 это обычно что-то вроде C:\msys64\usr\bin, для MinGW — C:\MinGW\bin. Точный путь зависит от того, куда вы установили инструменты, — проверьте его в проводнике.

☑️ Настройка PATH для make

Выполнено: 0 / 5

⚠️ Внимание: после редактирования PATH уже открытые окна командной строки и терминалы IDE изменений не увидят. Закройте их полностью и откройте заново — только тогда новая переменная подхватится.

Шаг 4. Проверяем результат

Откройте новое окно командной строки и выполните:

make --version

Если в ответ выводится версия GNU Make — настройка завершена, и исходная ошибка устранена. Если снова появляется «не является внутренней или внешней командой», вернитесь к проверке PATH: убедитесь, что путь указан без опечаток, указывает именно на папку (не на сам файл) и что файл make.exe действительно существует по этому адресу.

Сравнение способов установки make

Чтобы выбрать подходящий вариант, сопоставьте их основные особенности:

СпособКоманда установкиИмя исполняемого файлаКому подходит
Chocolateychoco install makemake.exeТем, кто уже пользуется Chocolatey
MSYS2pacman -S makemake.exeРазработчикам, которым нужен полный GNU-набор
MinGWчерез установщик MinGWmingw32-make.exeТем, кто собирает проекты GCC
Scoopscoop install makemake.exeПользователям Scoop

Какой бы вариант вы ни выбрали, итоговая проверка одинакова: новое окно терминала и команда make --version.

Если ошибка сохраняется после настройки

Иногда make установлен, PATH настроен, а ошибка продолжает появляться. В этом случае проверьте несколько менее очевидных моментов. Во-первых, убедитесь, что вы запускаете команду в том же терминале, где обновились переменные: встроенный терминал VS Code или другой IDE может кэшировать окружение, и его тоже нужно перезапустить целиком, а не только вкладку терминала.

Во-вторых, проверьте, не перекрывает ли что-то команду: если в текущей папке проекта лежит файл или каталог с именем make, возможны конфликты. В-третьих, некоторые проекты рассчитаны на запуск через WSL (подсистему Windows для Linux) — в таком случае make нужно устанавливать внутри Linux-окружения, а не в самой Windows.

Запуск make через WSL

Если проект ориентирован на Linux-окружение, установите WSL, откройте терминал дистрибутива (например, Ubuntu) и выполните sudo apt update && sudo apt install make. Далее работайте с проектом из терминала WSL — там make будет доступен без настройки PATH в Windows.

⚠️ Внимание: не копируйте make.exe в системные папки вроде C:\Windows\System32 — так иногда советуют на форумах, но это засоряет системный каталог и усложняет обновление утилиты. Правильный путь — корректная настройка переменной PATH.

Часто задаваемые вопросы

Почему после установки make ошибка всё равно появляется?

Наиболее вероятная причина — командная строка была открыта до изменения переменных окружения и использует устаревший PATH. Закройте все окна терминала и IDE, затем откройте заново и повторите проверку командой make --version.

Чем mingw32-make отличается от обычного make?

По сути это та же утилита GNU Make, собранная в составе MinGW, но с другим именем исполняемого файла. Для большинства Makefile разницы в работе нет. Если проект требует именно команду make, можно переименовать или скопировать файл mingw32-make.exe в make.exe в той же папке.

Можно ли использовать make без прав администратора?

Да. Установите утилиту в пользовательскую папку (например, через Scoop, который не требует повышенных прав) и добавьте путь в переменные среды пользователя, а не системные — этот раздел доступен без прав администратора.

Что делать, если Makefile есть, а make выдаёт другие ошибки?

Значит, исходная проблема с поиском утилиты уже решена, и новые ошибки относятся к самому процессу сборки: отсутствующим компиляторам, зависимостям или синтаксису Makefile. Читайте текст ошибки — обычно make указывает строку и цель, на которой остановилась сборка.

Работает ли make в PowerShell так же, как в cmd?

Да, если PATH настроен корректно, команда make доступна и в PowerShell, и в классической командной строке. Отличие лишь в том, что в PowerShell для просмотра PATH используется синтаксис $env:Path вместо echo %PATH%.