Ich schreibe ein C-Programm mit gcc in Cygwin. Meine Frage ist, wie erstellt man ein Makefile? Ich meine, welche Dateierweiterung hat es? Ich weiß, wie man einfache Regeln schreibt, aber ich kann eine Datei im Texteditor nicht mit der richtigen Erweiterung speichern. Unmöglich, irgendwelche Informationen darüber zu finden ... Das ist prolly eine super-newbie Frage. Also lass die Flammen anfangen. :-P
Da Sie Cygwin verwenden, was wiederum bedeutet, dass Sie GNU make verwenden, zitiere ich die relevanten Teil der GNU machen Handbuch :
3.2 Welchen Namen geben Sie Ihrem Makefile
?Standardmäßig sucht make nach dem makefile, versucht es folgendes Namen in der angegebenen Reihenfolge: GNUmakefile, makefile und Makefile. Normalerweise solltest du anrufen Ihr Makefile entweder Makefile oder Makefile. (Wir empfehlen Makefile weil es prominent in der Nähe erscheint der Anfang einer Verzeichnisliste, in unmittelbarer Nähe anderer wichtiger Dateien wie z als README.) Der erste Name wurde überprüft, GNUmakefile, wird nicht empfohlen für die meisten Makefiles. Du solltest das benutzen Name, wenn Sie ein Makefile haben, das ist spezifisch für GNU make, und wird es nicht sein verstanden durch andere Versionen von make. Andere make-Programme suchen nach Makefile und Makefile, aber nicht GNUmakefile.
[...]
Wenn Sie einen nicht standardmäßigen Namen für Ihr Makefile verwenden möchten, können Sie den Namen des Makefiles mit dem Namen angeben '-f' oder '--file' Option. Die Argumente '-f name' oder '--file = name' veranlassen make, den Dateinamen zu lesen als Makefile. Wenn Sie mehrere "-f" oder "--file" -Optionen verwenden, können Sie mehrere angeben Makefiles. Alle Makefiles werden in der angegebenen Reihenfolge effektiv verkettet. Der Standard Makefile-Namen GNUmakefile, Makefile und Makefile werden nicht automatisch überprüft, wenn Sie '-f' angeben oder '--file'.
Der Standarddateiname für ein Makefile ist Makefile
; Das ist der Name, nach dem GNU Make sucht, wenn Sie es ohne Optionen ausführen. Mit dem Argument -f
können Sie bei Bedarf einen alternativen Dateinamen angeben.
Makefiles haben normalerweise keine Erweiterung. Sie werden typischerweise 'Makefile' oder 'Makefile' genannt. Wenn jemand eine komplexe Gruppe von Makefiles schreibt, die sich gegenseitig enthalten, erhalten die enthaltenen Dateien manchmal die Erweiterung .mak, um anzuzeigen, dass es sich um Makefiles handelt, auch wenn sie nicht Makefile genannt werden.
Öffnen Sie Ihren bevorzugten Texteditor und erstellen Sie eine Datei namens Makefile
.
Der Inhalt kann variieren, aber vorausgesetzt, Sie haben ein Programm namens hello.c
, ein sehr, sehr einfaches Makefile
, das kompiliert werden könnte:
Danach führen Sie run von cygwin
shell:
Und dein Makefile
wird versuchen, hello.c
zu kompilieren. Wenn alles wie erwartet verläuft, können Sie das Programm hello.exe
ausführen, indem Sie den folgenden Shell-Befehl ausführen:
Hier ist ein nettes Tutorial zu Makefiles .