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

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

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

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

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

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

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

Ответ 1

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

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

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

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

Ответ 2

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

Ответ 3

  • Сначала убедитесь, что у вас установлен MinGW.
  • Из менеджера установки MinGW проверьте, установлен ли пакет mingw32-make.
  • Проверьте, добавили ли вы папку MinGW bin в свой PATH. введите PATH в командной строке и найдите папку. Или в окнах 10 перейдите в Control Panel\System and Security\System --> Advanced system settings --> Environment Variables --> System Variables найдите PATH переменную, выберите, Edit и проверьте, есть ли она. Если не просто добавить его!
  • Как описано здесь, создайте новый файл в любой из ваших папок PATH. Например, создайте mingwstartup.bat в папке bin MinGW. напишите строку doskey make=mingw32-make.exe внутри, сохраните и закройте ее.
  • откройте редактор реестра, запустив regedit. Как объяснено here в 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. Надеюсь, это поможет.

Ответ 4

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

Ответ 5

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

Ответ 6

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

Что такое 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, напротив, значительно расширяет формализм до такой степени, что Makefile GNU вряд ли будет работать с другими версиями (или иногда даже с более старыми версиями 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.

Ответ 7

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

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

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

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

работ:

Ответ 8

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

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

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

Ответ 9

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

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

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

Ответ 10

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

====== запустить '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%

Ответ 11

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