webentwicklung-frage-antwort-db.com.de

"make" wird nicht als interner oder externer Befehl, als bedienbares Programm oder als Batchdatei erkannt - Windows 7

Ich habe Windows 7 und habe versucht, den Befehl "make" zu verwenden, aber "make" wird nicht als interner oder externer Befehl erkannt.

Ich habe Start -> cmd -> run -> make gemacht, welches ausgibt:

'make' wird nicht als interner oder externer Befehl, als bedienbares Programm oder als Batch-Datei erkannt.

Dann habe ich 'mingw32-make' anstelle von 'make' (Start -> cmd -> run -> mingw32-make) eingegeben und bekomme die gleiche Ausgabe:

'mingw32-make' wird nicht als interner oder externer Befehl, als bedienbares Programm oder als Batch-Datei erkannt.

Was soll ich als nächstes tun, um das Problem zu beheben?

26
programmer

Ihr Problem ist höchstwahrscheinlich, dass die Shell nicht weiß, wo Sie Ihr make-Programm finden. Wenn Sie es von "überall" verwenden möchten, müssen Sie dies tun, oder Sie müssen den vollständigen Pfad jedes Mal eingeben, wenn Sie es aufrufen möchten. Dies ist ziemlich umständlich. Zum Beispiel:

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

Dies ist als Beispiel zu verstehen, es sah auf XP so aus, so kann ich es bei W7 nicht sagen. Gnuwin32 stellte jedoch nützliche "linux-world" -Pakete für Windows bereit. Überprüfen Sie die Angaben zu Ihrem Provider.

Damit Sie den Pfad nicht eingeben müssen, können Sie ihn der Umgebungsvariable PATH hinzufügen. Sie werden finden Sie dies leicht . Um sicherzustellen, dass es vom Betriebssystem registriert wird, öffnen Sie eine Konsole (führen Sie cmd.exe aus) und geben Sie $PATH ein, um eine Liste der Standardpfade zu erhalten. Stellen Sie sicher, dass sich der Ort Ihres make-Programms befindet.

23
kebs

In Windows10 habe ich dieses Problem durch Hinzufügen von "C:\MinGW\bin" zu Path gelöst und dann mit MinGW32-make not make aufgerufen

11
user61871
  1. Vergewissern Sie sich zuerst, dass MinGW installiert ist.
  2. Überprüfen Sie im MinGW-Installationsmanager, ob das Paket mingw32-make installiert ist.
  3. Prüfen Sie, ob Sie den Ordner MinGW bin zu Ihrem PATH hinzugefügt haben. Geben Sie PATH in Ihre Befehlszeile ein und suchen Sie nach dem Ordner. Oder gehen Sie in Windows 10 zu Control Panel\System and Security\System --> Advanced system settings --> Environment Variables --> System Variables find Path, wählen Sie, Edit und prüfen Sie, ob sie vorhanden ist. Wenn nicht, füge es einfach hinzu!
  4. Wie hier beschrieben, erstellen Sie eine neue Datei in einem Ihrer PATH-Ordner. Erstellen Sie beispielsweise mingwstartup.bat im Ordner MinGW bin. schreibe die Zeile doskey make=mingw32-make.exe hinein, speichere und schließe sie.
  5. Öffnen Sie den Registrierungseditor, indem Sie regedit ausführen. Wie hier in HKEY_LOCAL_MACHINE oder HKEY_CURRENT_USER beschrieben, gehen Sie zu \Software\Microsoft\Command Processor, klicken Sie mit der rechten Maustaste auf das rechte Feld New --> Expandable String Value und nennen Sie es AutoRun. Doppelklicken Sie und geben Sie den Pfad zu Ihrer .bat-Datei als Wertdaten ein (z. B. "C:\MinGW\bin\mingwstartup.bat"). Das Ergebnis sollte folgendermaßen aussehen:

 enter image description here

jedes Mal, wenn Sie ein neues Terminal make öffnen, wird der mingw32-make.exe ausgeführt. Ich hoffe, es hilft.

3
Foad

Ich benutze Windows 8. Ich hatte das gleiche Problem. Ich habe den Pfad "C:\MinGW\bin" zu der Systemumgebungsvariablen "path" hinzugefügt. Kann sein, Sie können das gleiche versuchen. Ich hoffe es hilft!

1
Toothless

'make' ist ein Befehl für UNIX/Linux. Verwenden Sie stattdessen den Befehl 'nmake' in MS Windows. Oder verwenden Sie lieber einen Emulator wie CYGWIN.

1
user3649944

Wenn Sie bereits MinGW in Windows 7 installiert haben, gehen Sie einfach wie folgt vor:

  1. Erstellen Sie eine weitere Kopie der Datei C:\MinGW\bin\mingw32-make.exe im selben Ordner.
  2. Benennen Sie den Dateinamen von mingw32-make.exe in make.exe um.
  3. Führen Sie den Befehl make erneut aus.

Getestet in meinem Laptop für die oben genannten Schritte.

0
Jerry Chong

Suchen Sie mithilfe der Suchfunktion nach make.exe, und notieren Sie sich den absoluten Pfad zur Datei. Sie können dies tun, indem Sie mit der rechten Maustaste auf den Dateinamen im Suchergebnis und dann auf Eigenschaften klicken oder den Ordner "Location" öffnen.

Wenn Sie die Befehlszeilenkonsole (cmd) öffnen, anstatt make einzugeben, geben Sie den gesamten Pfad und Namen ein, z. C:\Windows\System32\Java (dies ist für Java ...).

Alternativ, wenn Sie nicht jedes Mal den vollständigen Pfad angeben möchten, haben Sie folgende Möglichkeiten:

  • machen Sie C:\Windows\System32\ zum aktuellen Arbeitsverzeichnis, verwenden Sie cd auf cmd-Ebene.
  • fügen Sie C:\Windows\System32\ zu Ihrer PATH-Umgebungsvariablen hinzu.

Refs:

0
mins

Wie andere Antworten bereits vorgeschlagen haben, muss MinGW installiert sein. Der zusätzliche Teil ist das Hinzufügen der folgenden zwei Ordner zur Umgebungsvariablen PATH.

  • C:\MinGW\bin
  • C:\MinGW\msys\1.0\bin

Offensichtlich passen Sie den Pfad an, wo Sie MinGW installiert haben. Vergessen Sie auch nicht, ein neues Befehlszeilenterminal zu öffnen.

0
Tushar

verwenden Sie in Windows mingw32-make statt cmake

0
shubham ghosh

mein Fledermauscode

====== Führen Sie 'cmd' als Administrator aus. 2 Verwenden Sie 'setx' ===== setx scoop "C:\Benutzer \% Benutzername%\scoop"/M

echo %scoop%

setx scoopApps "%scoop%\apps" /M

echo %scoopApps%

scoop install make 

======= Phase 3: Erstellen Sie die Umgebungsvariable makePath ===

setx makePath "%scoopApps%/make" /M

echo %makePath%

setx makeBin "%makePath%/Bin" /M

echo %makeBin%

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


echo %Path%
0
小色狼

Dies ist eine alte Frage, aber keine der Antworten hier bietet genug Kontext, damit Anfänger auswählen können, welche sie auswählen möchten.

Was ist make?

make ist ein traditionelles Unix-Dienstprogramm, das ein Makefile liest, um zu entscheiden, welche Programme ausgeführt werden sollen, um ein bestimmtes Ziel zu erreichen. In der Regel besteht dieses Ziel darin, eine einzige Software zu erstellen. make ist jedoch allgemein genug, um auch für verschiedene andere Aufgaben verwendet zu werden, z. B. zum Zusammenstellen eines PDF aus einer Sammlung von TeX-Quelldateien oder zum Abrufen der neuesten Versionen einer Reihe von Webseiten .

make verkapselt nicht nur die Schritte, um ein einzelnes Ziel zu erreichen, sondern reduziert auch die Verarbeitungszeit, indem bereits abgeschlossene Schritte nicht erneut ausgeführt werden. Dazu werden Zeitstempel zwischen Abhängigkeiten verglichen. Wenn A von B abhängt, aber A neuer als B ist, besteht keine Notwendigkeit, make A. Damit dies ordnungsgemäß funktioniert, muss Makefile natürlich alle derartigen Abhängigkeiten dokumentieren.

A: B
    commands to produce A from B

Beachten Sie, dass der Einzug aus einem wörtlichen Tabulatorzeichen bestehen muss. Dies ist ein häufiger Anfängerfehler

Gemeinsame Versionen von make

Das ursprüngliche make war eher Fußgänger. Seine Linie geht bis heute in BSD make über, von dem nmake abgeleitet wird. Grob gesagt bietet diese Version die von POSIX definierte Funktion make mit einigen geringfügigen Verbesserungen und Variationen.

GNU make dagegen erheblich erweitert den Formalismus bis zu dem Punkt, an dem es unwahrscheinlich ist, dass ein GNU Makefile mit anderen Versionen funktioniert (oder gelegentlich sogar ältere Versionen von GNU make). Es gibt eine Konvention zum Aufrufen solcher Dateien GNUmakefile anstelle von Makefile, aber diese Konvention wird weitgehend ignoriert, insbesondere auf Plattformen wie Linux, auf denen GNU makede facto standard make.

Anzeichen dafür, dass ein Makefile GNU make Konventionen verwendet, sind die Verwendung von := anstelle von = für Variablenzuweisungen (obwohl dies nicht ausschließlich ein _ ist).GNU Feature) und eine Vielzahl von Funktionen wie $(Shell ...), $(foreach ...), $(patsubst ...) usw.

Also was brauche ich?

Nun, es hängt wirklich davon ab, was Sie erreichen möchten.

Wenn die Software, die Sie erstellen möchten, eine vcproj -Datei oder eine ähnliche Datei enthält, möchten Sie diese wahrscheinlich verwenden und versuchen, make überhaupt nicht zu verwenden.

Im allgemeinen Fall ist MinGW make ein Windows-Port von GNU make für Windows. Es sollte im Allgemeinen mit jedem Makefile fertig werden, das Sie darauf werfen.

Wenn Sie wissen, dass die Software für die Verwendung von nmake geschrieben wurde und Sie sie bereits installiert haben, oder wenn es für Sie einfach ist, sie zu erhalten, gehen Sie vielleicht damit um.

Sie sollten verstehen, dass eine Kompilierung ohne wesentliche Änderungen unwahrscheinlich ist, wenn die Software nicht für Windows geschrieben oder explizit auf Windows portiert wurde. In diesem Szenario ist es das geringste Problem, make zum Laufen zu bringen, und Sie benötigen ein gutes Verständnis der Unterschiede zwischen der ursprünglichen Plattform und Windows, um die Chance zu haben, es selbst herauszuholen.

Genauer gesagt, wenn Makefile Unix-Befehle wie grep oder curl oder yacc enthält, muss auf Ihrem System auch dieser Befehl installiert sein. Davon abgesehen funktioniert C oder C++ (oder allgemeiner: Quellcode in einer beliebigen Sprache), der für eine andere Plattform geschrieben wurde, unter Windows möglicherweise überhaupt nicht oder wie erwartet (was oft schlimmer ist).

0
tripleee