Wie verwende ich GNU Make unter Windows?

95

Ich habe MinGW und MSYS installiert und hinzugefügt C:\MinGW\bin, PATHaber ich kann Makefile unter Windows immer noch nicht ausführen cmd. Ich möchte cmd.exe ausführen und dort beispielsweise make alleingeben , aber mein cmd sagt, dass es keinen solchen Befehl gibt.

Was soll ich machen? Ich möchte keine MSYS-Shell verwenden, das ist nicht der Punkt. Irgendwelche Ideen, wie man GNU Make in Windows cmd verwendet, wie ich es in Ubuntu tun kann? Ich bin nicht interessiert an Cygwin.

Yak
quelle
1
Sie müssen es PATH unter Umgebungsvariablen in Ihren Systemeinstellungen hinzufügen.
Slugonamission
@ Slugonamission: Ich habe es schon getan, ich schrieb :)
Yak
Führen Sie make.exe aus, anstatt make?
Slugonamission
2
@ Slugonamission: Ich habe es geschafft! Ich C:\MinGW\msys\1.0\binhabe PATH hinzugefügt und es hat funktioniert! : D Aber immer noch Problem, makezeigt mir: pastie.org/private/ixaaqbq2xl3geyg0emnow
yak
1
In Ihrem allZiel muss sich hello.exe in derselben Zeile befinden all, um als Abhängigkeit für das Ziel betrachtet zu werden. Wenn nicht, wird Teil der Aufgabe für all.
Slugonamission

Antworten:

101

So habe ich es zum Laufen gebracht:

  copy c:\MinGW\bin\mingw32-make.exe c:\MinGW\bin\make.exe

Dann kann ich eine Eingabeaufforderung öffnen und make eingeben:

  C:\Users\Dell>make
  make: *** No targets specified and no makefile found.  Stop.

Was bedeutet, dass es jetzt funktioniert!

user1594322
quelle
10
@Imray Ich für den Fall, es ist immer noch nicht ganz klar: Die Marke wird in Datei verteilt mingw32-make.exe. Da das Verzeichnis c:\MinGW\binauf Systempfad ist, können Sie entweder mingw32-makeals Befehl oder Kopie (sicherere Version von Umbenennung) die mingw32-make.exenur make.exe.
Tomáš Zato - Monica wieder einsetzen
1
Sie sollten sich aus aufgeblähten Gründen, aber auch weil das msys-Verzeichnis für sich selbst lokal ist, so gut wie davon fernhalten, msys oder mingw zu einem Teil Ihrer Umgebungsvariablen zu machen. Der Pfad in msys ermöglicht es Ihnen, make zu verwenden, wenn er sich im Bin von mingw64 befindet, jedoch nicht über dieses Problem spricht. Wenn Sie nicht über das Problem sprechen, sollten Sie einen HARD-Link zu mingw32-make.exe als make.exe erstellen, der das Leben erleichtert und die Exe nicht klonen muss. Versuchen Sie:mklink /H C:\MinGW\bin\mingw32-make.exe C:\MinGW\bin\make.exe
user2262111
9

Ich verwende GNU Make aus dem GnuWin32-Projekt, siehe http://gnuwin32.sourceforge.net/ aber seit einiger Zeit gibt es keine Updates mehr, daher bin ich mir über den Status dieses Projekts nicht sicher.

Colin 't Hart
quelle
6

Obwohl diese Frage alt ist, wird sie immer noch von vielen gestellt, die MSYS2 verwenden .

Ich habe dieses Jahr damit begonnen, CygWin zu ersetzen, und bin ziemlich zufrieden.

makeÖffnen Sie zur Installation die MSYS2-Shell und geben Sie die folgenden Befehle ein:

# Update the package database and core system packages
pacman -Syu
# Close shell and open again if needed

# Update again
pacman -Su

# Install make
pacman -S make

# Test it (show version)
make -v
Delfino
quelle
3

Sie können den Anwendungsordner über eine Eingabeaufforderung zu Ihrem Pfad hinzufügen, indem Sie Folgendes verwenden:

setx PATH "% PATH%; c: \ MinGW \ bin"

Beachten Sie, dass Sie wahrscheinlich ein neues Befehlsfenster öffnen müssen, damit die geänderte Pfadeinstellung wirksam wird.

Buggieboy
quelle
2

Wenn Sie nur make installieren möchten, können Sie alternativ den schokoladigen Paketmanager verwenden , um gnu make mithilfe von zu installieren

choco install make -y

Dies behandelt alle Pfadprobleme, die Sie möglicherweise haben.

Ivo Merchiers
quelle
0

user1594322 gab eine korrekte Antwort, aber als ich es versuchte, stieß ich auf Administrator- / Berechtigungsprobleme. Ich konnte 'mingw32-make.exe' kopieren und einfügen, Administratorprobleme überschreiben / umgehen und dann die Kopie in 'make.exe' bearbeiten. Auf VirtualBox in einem Win7-Gast.

DBourne
quelle
0

Während make selbst als eigenständige ausführbare Datei ( gnuwin32.sourceforge.netPaketmake ) verfügbar ist , bedeutet die Verwendung in einer geeigneten Entwicklungsumgebung die Verwendung von msys2 .

Git 2.24 (Q4 2019) veranschaulicht Folgendes:

Siehe Commit 4668931 , Commit b35304b , Commit ab7d854 , Commit be5d88e , Commit 5d65ad1 , Commit 030a628 , Commit 61d1d92 , Commit e4347c9 , Commit ed712ef , Commit 5b8f9e2 , Commit 41616ef , Commit c097b95 (04. Oktober 2019) und Commit dbcd9 ( 04. Oktober 2019). von Johannes Schindelin ( dscho) .
(Zusammengeführt von Junio ​​C Hamano - gitster- in Commit 6d5291b , 15. Oktober 2019)

test-tool run-command: lernen, (Teile) der Testsuite auszuführen

Unterzeichnet von: Johannes Schindelin

Git für Windows springt durch die Rahmen, um eine Entwicklungsumgebung bereitzustellen, mit der Git erstellt und die Testsuite ausgeführt werden kann.

Zu diesem Zweck wird ein gesamtes MSYS2-System, einschließlich GNU make und GCC, als "Git for Windows SDK" angeboten.
Es hat seinen Preis: Ein erster Download des SDK wiegt mehrere Hundert Megabyte, und das entpackte SDK belegt ~ 2 GB Speicherplatz.

Eine viel nativere Entwicklungsumgebung unter Windows ist Visual Studio. Um Mitwirkende bei der Verwendung dieser Umgebung zu unterstützen, haben wir bereits ein Makefile-Ziel vcxproj, das ein Commit mit Projektdateien (und anderen generierten Dateien) generiert, und Git für Windows.vs/master Zweig von wird mithilfe dieses Ziels kontinuierlich neu generiert.

Die Idee ist, das Erstellen von Git in Visual Studio zu ermöglichen und einzelne Tests mit einem tragbaren Git auszuführen.

VonC
quelle