Сообщение «"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.
Обратите внимание на нюанс с 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
⚠️ Внимание: после редактирования PATH уже открытые окна командной строки и терминалы IDE изменений не увидят. Закройте их полностью и откройте заново — только тогда новая переменная подхватится.
Шаг 4. Проверяем результат
Откройте новое окно командной строки и выполните:
make --version
Если в ответ выводится версия GNU Make — настройка завершена, и исходная ошибка устранена. Если снова появляется «не является внутренней или внешней командой», вернитесь к проверке PATH: убедитесь, что путь указан без опечаток, указывает именно на папку (не на сам файл) и что файл make.exe действительно существует по этому адресу.
Сравнение способов установки make
Чтобы выбрать подходящий вариант, сопоставьте их основные особенности:
| Способ | Команда установки | Имя исполняемого файла | Кому подходит |
|---|---|---|---|
| Chocolatey | choco install make | make.exe | Тем, кто уже пользуется Chocolatey |
| MSYS2 | pacman -S make | make.exe | Разработчикам, которым нужен полный GNU-набор |
| MinGW | через установщик MinGW | mingw32-make.exe | Тем, кто собирает проекты GCC |
| Scoop | scoop install make | make.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%.