"make" не распознается как внутренняя или внешняя команда, работающая программа или командный файл - Windows 7

У меня Windows 7, и я пытался использовать команду "make", но "make" не распознается как внутренняя или внешняя команда.

я сделал Start -> cmd -> run -> make, который выводит:

'make' не распознается как внутренняя или внешняя команда, работающая программа или командный файл.

Затем я набрал "mingw32-make" вместо "make" (Start -> cmd -> run -> mingw32-make) и я получаю такой же вывод:

"mingw32-make" не распознается как внутренняя или внешняя команда, работающая программа или командный файл.

Что мне делать дальше, чтобы решить эту проблему?

8 ответов

Решение

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

"c:\program files\gnuwin32\bin\make.exe" option1=thisvalue option2=thatvalue

Это должно быть взято в качестве примера, на XP это выглядело примерно так, я не могу сказать на W7. Но gnuwin32 раньше предоставлял полезные пакеты "linux-world" для Windows. Проверьте информацию о вашем провайдере для марки.

Таким образом, чтобы избежать ввода пути, вы можете добавить путь к PATH переменная окружения. Вы найдете это легко. Чтобы убедиться, что он зарегистрирован ОС, откройте консоль (запустите cmd.exe) и входя $PATH должен дать вам список путей по умолчанию. Проверьте, что местоположение вашего make программа есть.

В Windows10 я решил эту проблему, добавив "C:\MinGW\bin" в Path, затем вызвал его с помощью MinGW32-make not make

Это старый вопрос, но ни один из ответов здесь не обеспечивает достаточного контекста для начинающего, чтобы выбрать, какой из них выбрать.

Что такое make?

make это традиционная утилита Unix, которая читает Makefile решить, какие программы запускать для достижения конкретной цели. Как правило, эта цель заключается в создании единого программного обеспечения; но make Он достаточно общий, чтобы его можно было использовать и для различных других задач, таких как сборка PDF из коллекции исходных файлов TeX или извлечение новейших версий каждого из набора веб-страниц.

Помимо инкапсуляции шагов для достижения отдельной цели, make сокращает время обработки, избегая повторного выполнения шагов, которые уже выполнены. Это делается путем сравнения отметок времени между зависимостями; если A зависит от B, но A новее, чем B, то нет необходимости make A, Конечно, для того, чтобы это работало должным образом, Makefile Необходимо документировать все такие зависимости.

A: B
    commands to produce A from B

Обратите внимание, что отступ должен состоять из буквального символа табуляции. Это распространенная ошибка новичка.

Общие версии make

Оригинал make был довольно пешеходным. Его линия продолжается и по сей день в BSD makeиз которого nmake выводится Грубо говоря, эта версия предоставляет make функциональность, определенная POSIX, с небольшими улучшениями и вариациями.

GNU makeнапротив, значительно расширяет формализм до такой степени, что GNU Makefile вряд ли будет работать с другими версиями (или иногда даже с более старыми версиями GNU make). Существует соглашение для вызова таких файлов GNUmakefile вместо Makefile, но это соглашение широко игнорируется, особенно на платформах, таких как Linux, где GNU make является стандартом де-факто make,

Контрольные признаки того, что Makefile использует GNU make конвенции являются использование := вместо = для присвоения переменных (хотя это не только функция GNU) и множество функций, таких как $(shell ...), $(foreach ...), $(patsubst ...) и т.п.

Так что мне нужно?

Ну, это действительно зависит от того, чего вы надеетесь достичь.

Если программное обеспечение, которое вы собираетесь построить, имеет vcproj файл или аналогичный, вы, вероятно, хотите использовать это вместо, а не пытаться использовать make совсем.

В общем случае MinGW make это Windows-порт GNU make для Windows, как правило, должен справиться с любым Makefile Вы бросаете на это.

Если вы знаете, что программное обеспечение было написано для использования nmake и вы уже установили его, или его легко получить, может быть, пойти с этим.

Вы должны понимать, что если программное обеспечение не было написано или явно портировано для Windows, оно вряд ли скомпилируется без существенных изменений. В этом сценарии, получение make запуск - это наименьшая из ваших проблем, и вам понадобится хорошее понимание различий между исходной платформой и Windows, чтобы иметь возможность справиться с этим самостоятельно.

Более подробно, если Makefile содержит команды Unix, такие как grep или же curl или же yacc тогда в вашей системе тоже должны быть установлены эти команды. Но, помимо этого, C или C++ (или, в более общем случае, исходный код на любом языке), который был написан для другой платформы, могут просто не работать - вообще или, как и ожидалось (что часто хуже), - в Windows.

Если у вас уже установлен MinGW в Windows 7, просто сделайте следующее:

  1. Сделайте еще одну копию C:\MinGW\bin\mingw32-make.exe файл в той же папке.
  2. Переименуйте имя файла из mingw32-make.exe в make.exe,
  3. Запустите команду make снова.

Проверено, работает в моем ноутбуке для вышеуказанных шагов.

  1. Сначала убедитесь, что у вас установлен MinGW.
  2. В диспетчере установки MinGW проверьте, есть ли у вас mingw32-make пакет установлен.
  3. Проверьте, добавили ли вы папку MinGW bin в PATH. тип PATH в командной строке и найдите папку. Или на Windows 10 перейти к Control Panel\System and Security\System --> Advanced system settings --> Environment Variables --> System Variables находить Path переменная, выберите, Edit и проверьте, если это там. Если не просто добавить это!
  4. Как объясняется здесь, создайте новый файл в любой из ваших папок PATH. Например создать mingwstartup.bat в папке bin MinGW. написать строку doskey make=mingw32-make.exe внутри сохраните и закройте его.
  5. откройте редактор реестра, запустив regedit, Как объяснено здесь, в HKEY_LOCAL_MACHINE или же HKEY_CURRENT_USER идти к \Software\Microsoft\Command Processor щелкните правой кнопкой мыши на правой панели New --> Expandable String Value и назовите это AutoRun, дважды щелкните и введите путь к вашему.bat-файлу в качестве значения данных (например, "C:\MinGW\bin\mingwstartup.bat") результат должен выглядеть так:

теперь каждый раз, когда вы открываете новый терминал make команда запустит mingw32-make.exe, Я надеюсь, что это помогает.

Для исправленной в окне 10 ошибки make'не распознается как внутренняя или внешняя команда.

  1. Загрузите MinGW - Minimalist GNU для Windows отсюда https://sourceforge.net/projects/mingw/

  2. установить это

  3. Во время установки отметьте все базовые установочные пакеты, как показано на рисунке.

  4. Применять изменения

  5. После завершения установки скопируйте C:\MinGW\bin и вставьте в системную переменную

Откройте свойства MyComputer и следуйте инструкциям на изображении.

Вам также может потребоваться установить это

  1. https://sourceforge.net/projects/gnuwin32/

Как уже предлагали другие ответы, вы должны иметь MinGW установлены. Дополнительная часть заключается в добавлении следующих двух папок в PATH переменная окружения.

  • C: \ MinGW \ Bin
  • C: \ MinGW \ MSYS \1,0 \ Bin

Очевидно, настроить путь в зависимости от того, где вы установили MinGW. Кроме того, не забудьте открыть новый терминал командной строки.

'make' - это команда для UNIX/Linux. Вместо этого используйте команду "nmake" в MS Windows. Или лучше использовать эмулятор, такой как CYGWIN.

Я использую Windows 8. У меня была такая же проблема. Я добавил путь "C:\MinGW\bin" в системную переменную среды с именем "path", после чего он заработал. Может быть, вы можете попробовать то же самое. Надеюсь, это поможет!

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

При открытии консоли командной строки (cmd) вместо ввода makeвведите полный путь и имя, например C:\Windows\System32\java (это для Java...).

В качестве альтернативы, если вы не хотите каждый раз указывать полный путь, у вас есть следующие возможности:

  • делать C:\Windows\System32\ текущий рабочий каталог, используя cd на уровне cmd.
  • добавлять C:\Windows\System32\ вам переменная среды PATH.

Refs:

мой код летучей мыши

====== запустить 'cmd' как администратор 2, используя 'setx' ===== setx scoop "C: \ Users \% username% \ scoop" / M

echo %scoop%

setx scoopApps "%scoop%\apps" /M

echo %scoopApps%

scoop install make 

======= Этап 3. Создание переменной среды makePath ===

setx makePath "%scoopApps%/make" /M

echo %makePath%

setx makeBin "%makePath%/Bin" /M

echo %makeBin%

setx Path "%Path%;%makeBin%" /M


echo %Path%

Используйте mingw32-make вместо cmake в windows

Другие вопросы по тегам