Вопрос №51789 от пользователя user-3bc872a6f904457d в проекте «Игры разума»
Здравствуйте, у меня не запускается команда make. Пишет "make : Имя "make" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку." Использую консоль Visual Studio. Скачала GnuWin.
user-3bc872a6f904457d, приветствую!
Для того чтобы в консоли работала команда make, необходимо вначале установить утилиту make глобально используя пакетный менеджер вашей операционной системы. Если вы используете windows, то можно скачать утилиту отсюда для gnumake.
Имя make не распознано как имя командлета
Вопрос №51789 от пользователя user-3bc872a6f904457d в проекте «Игры разума»
Здравствуйте, у меня не запускается команда make. Пишет "make : Имя "make" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку." Использую консоль Visual Studio. Скачала GnuWin.
user-3bc872a6f904457d, приветствую!
Для того чтобы в консоли работала команда make, необходимо вначале установить утилиту make глобально используя пакетный менеджер вашей операционной системы. Если вы используете windows, то можно скачать утилиту отсюда для gnumake.
Makefile не работает, не найден путь к команде make
Я студент первого курса университета, изучаю, как использовать make-файлы для компиляции и запуска моей простой программы. Я настроил его в соответствии с инструкциями, но когда я набираю «сделать», появляется эта ошибка:
Термин make не распознается как имя командлета, функции, файла сценария или исполняемой программы. Проверьте правильность написания имени или, если был указан путь, убедитесь, что путь указан правильно, и повторите попытку. В строке:1 символ:1
Пробовал проверить путь, удалить и переустановить minGW с помощью установщика. Должен ли я попробовать установить компилятор gcc по-другому? Пожалуйста, имейте в виду, что я новичок в этом деле. Использование C кстати.
Русские Блоги
Проблемы, возникающие при использовании Cmake в VScode и их решения
Шаги настройки кода VS сначала выполняются в соответствии с онлайн-методом, который, вероятно, должен установить mingw, cmake, код VS, а затем установить плагин в коде VS: 
После установки новая папка / проект выглядит следующим образом:

Среди них сборка автоматически генерируется после открытия папки. Тест — это исходный файл и файл проекта.
Откройте терминал (это может быть powershell или терминал в vscode), введите сборку, используйте
MakeGiles MinGW могут быть изменены в другие параметры компиляции. Выберите в соответствии с неправильной подсказкой.
Если конфигурация cmake неверна, выбор набора может быть невозможен, ввод Ctrl + Shift + P
Выберите комплект, я выбираю вариант GCC с Mingw здесь. Если нет, выберите другой.
После успеха генерируется make-файл. Онлайн сказал для ввода
Для генерации исполняемого файла, но я всегда получаю ошибку здесь:
(Для решения этой проблемы я также специально загрузил GNU make и добавил соответствующие системные переменные окружения. Но это не решило проблему. Наконец, GNU make был удален.) Команда make фактически хочет вызвать файл make exe без ввода Путь заключается в том, что соответствующий путь добавляется в переменную среды. Но на самом деле команда make была установлена при установке mingw и не вызывалась, потому что exe-файл не был изменен на make.exe. можешь использовать
Команда для выполнения команды make, вы также можете переименовать mingw32-make.exe в make.exe, а затем ввести
Выполнить. После успеха войдите в терминал
Где TEST_C — это имя проекта. Таким образом, вы можете получить вывод программы.
Windows 7 — 'make' is not recognized as an internal or external command, operable program or batch file
I have Windows 7 and tried to use the ‘make’ command but ‘make’ is not recognized as an internal or external command.
I did Start -> cmd -> run -> make , which outputs:
‘make’ is not recognized as an internal or external command,operable program or batch file.
Then I typed ‘mingw32-make’ instead of ‘make’ ( Start -> cmd -> run -> mingw32-make ) and I get the same output:
‘mingw32-make’ is not recognized as an internal or external command,operable program or batch file.
What shall I do next in order to fix this problem?
![]()
12 Answers 12
In Windows10, I solved this issue by adding C:\MinGW\bin to Path and then called it using MinGW32-make not make .
![]()
This is an old question, but none of the answers here provide enough context for a beginner to choose which one to pick.
What is make ?
make is a traditional Unix utility which reads a Makefile to decide what programs to run to reach a particular goal. Typically, that goal is to build a piece of software from a set of source files and libraries; but make is general enough to be used for various other tasks, too, like assembling a PDF from a collection of TeX source files, or retrieving the newest versions of each of a list of web pages.
Besides encapsulating the steps to reach an individual target, make reduces processing time by avoiding to re-execute steps which are already complete. It does this by comparing time stamps between dependencies; if A depends on B but A already exists and is newer than B, there is no need to make A . Of course, in order for this to work properly, the Makefile needs to document all such dependencies.
Notice that the indentation needs to consist of a literal tab character. This is a common beginner mistake.
Common Versions of make
The original make was rather pedestrian. Its lineage continues to this day into BSD make , from which nmake is derived. Roughly speaking, this version provides the make functionality defined by POSIX, with a few minor enhancements and variations.
GNU make , by contrast, significantly extends the formalism, to the point where a GNU Makefile is unlikely to work with other versions (or occasionally even older versions of GNU make ). There is a convention to call such files GNUmakefile instead of Makefile , but this convention is widely ignored, especially on platforms like Linux where GNU make is the de facto standard make .
Telltale signs that a Makefile uses GNU make conventions are the use of := instead of = for variable assignments (though this is not exclusively a GNU feature) and a plethora of functions like $(shell . ) , $(foreach . ) , $(patsubst . ) etc.
So Which Do I Need?
Well, it really depends on what you are hoping to accomplish.
If the software you are hoping to build has a vcproj file or similar, you probably want to use that instead, and not try to use make at all.
In the general case, MinGW make is a Windows port of GNU make for Windows, It should generally cope with any Makefile you throw at it.
If you know the software was written to use nmake and you already have it installed, or it is easy for you to obtain, maybe go with that.
You should understand that if the software was not written for, or explicitly ported to, Windows, it is unlikely to compile without significant modifications. In this scenario, getting make to run is the least of your problems, and you will need a good understanding of the differences between the original platform and Windows to have a chance of pulling it off yourself.
In some more detail, if the Makefile contains Unix commands like grep or curl or yacc then your system needs to have those commands installed, too. But quite apart from that, C or C++ (or more generally, source code in any language) which was written for a different platform might simply not work — at all, or as expected (which is often worse) — on Windows.
Windows 7 – "make" не распознается как внутренняя или внешняя команда, работающая программа или командный файл
У меня Windows 7 и я пытался использовать команду “make”, но “make” не распознается как внутренняя или внешняя команда.
Я сделал Start -> cmd -> run -> make , который выводит:
“make” не распознается как внутренняя или внешняя команда, работающая программа или командный файл.
Затем я набрал “mingw32-make” вместо “make” ( Start -> cmd -> run -> mingw32-make ) и получаю такой же вывод:
“mingw32-make” не распознается как внутренняя или внешняя команда, работающая программа или командный файл.
Что мне делать дальше, чтобы решить эту проблему?
Ваша проблема, скорее всего, в том, что оболочка не знает, где найти вашу программу make . Если вы хотите использовать его из “где угодно”, вы должны это сделать, иначе вам нужно будет добавить полный путь каждый раз, когда вы хотите его назвать, что довольно громоздко. Например:
Это нужно сделать в качестве примера, для XP это было похоже на что-то подобное, я не могу сказать на W7. Но gnuwin32 используется для предоставления полезных пакетов “linux-world” для Windows. Проверьте информацию о своем поставщике для получения.
Чтобы избежать ввода пути, вы можете добавить путь к переменной среды PATH . Вы найдете это легко.
Чтобы убедиться, что он зарегистрирован ОС, откройте консоль (запустите cmd.exe ), а ввод $PATH должен предоставить вам список исправлений по умолчанию. Убедитесь, что там находится ваша программа make .
В Windows10 я решил эту проблему, добавив “C:\MinGW\bin” в “Путь”, затем вызвал его с помощью MinGW32-make, не делая
- Сначала убедитесь, что у вас установлен 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 . Надеюсь, это поможет.
‘make’ – это команда для UNIX/Linux. Вместо этого используйте команду “nmake” в MS Windows. Или вам лучше использовать эмулятор типа CYGWIN.
Я использую окна 8. У меня была такая же проблема. Я добавил путь “C:\MinGW\bin” к переменной системной среды с именем “путь”, после чего она сработала. Может быть, вы можете попробовать то же самое. Надеюсь, это поможет!
Это старый вопрос, но ни один из ответов здесь не обеспечивает достаточного контекста для начинающего, чтобы выбрать, какой из них выбрать.
Что такое make ?
make – это традиционная утилита Unix, которая читает Makefile чтобы решить, какие программы запускать для достижения конкретной цели. Как правило, эта цель заключается в создании единого программного обеспечения; но make достаточно универсален, чтобы его можно было использовать и для различных других задач, таких как сборка PDF из коллекции исходных файлов TeX или извлечение новейших версий каждого из набора веб-страниц.
Помимо инкапсуляции шагов для достижения отдельной цели, make сокращает время обработки, избегая повторного выполнения шагов, которые уже выполнены. Это делается путем сравнения отметок времени между зависимостями; если A зависит от B, но A новее, чем B, нет необходимости make A Конечно, для того, чтобы это работало правильно, Makefile должен задокументировать все такие зависимости.
Обратите внимание, что отступ должен состоять из буквального символа табуляции. Это распространенная ошибка новичка.
Общие версии 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.
Найдите make.exe, используя функцию поиска, когда найдете, отметьте абсолютный путь к файлу. Вы можете сделать это, щелкнув правой кнопкой мыши на имени файла в результатах поиска, а затем на свойствах или открыть папку местоположения (не уверен в точной формулировке, я не использую английский язык).
Когда вы открываете консоль командной строки (cmd) вместо ввода make , введите весь путь и имя, например. C:\Windows\System32\java (это для java…).
В качестве альтернативы, если вы не хотите предоставлять полный путь каждый раз, тогда у вас есть возможности:
- создайте C:\Windows\System32\ текущий рабочий каталог, используя cd на уровне cmd.
- добавить C:\Windows\System32\ к переменной среды PATH.
- использовать полный путь: http://technet.microsoft.com/en-us/magazine/ff678296.aspx
- cd: http://technet.microsoft.com/en-us/library/cc731237.aspx
- PATH: http://technet.microsoft.com/en-us/library/bb490963.aspx
Как уже предлагали другие ответы, у вас должен быть установлен MinGW . Дополнительной частью является добавление следующих двух папок в PATH среды PATH .
- C:\MinGW\Bin
- C:\MinGW\MSYS\1,0\Bin
Очевидно, скорректируйте путь в зависимости от того, где вы установили MinGW. Кроме того, не забудьте открыть новый терминал командной строки.
Если у вас уже установлен MinGW в Windows 7, просто сделайте следующее:
- Сделайте еще одну копию файла C:\MinGW\bin\mingw32-make.exe в той же папке.
- Переименуйте имя файла из mingw32-make.exe в make.exe .
- Запустите команду make снова.
Проверено, работает в моем ноутбуке для вышеуказанных шагов.
====== запустить ‘cmd’ как администратор 2, используя ‘setx’ ===== setx scoop “C:\Users\%username%\scoop”/M