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 ... Dies ist prolly eine super-Newbie Frage. Also lass die Flammen anfangen. :-PMakefile-Erweiterung
Antwort
Sie heißen normalerweise Makefile
oder makefile
. Keine Erweiterung Das ist aber nur eine Konvention.
Es ist nicht trivial, eine Make-Datei zu schreiben, eine Anleitung oder Tutorial nachschlagen =)
Ihren bevorzugten Texteditor öffnen und eine Datei namens Makefile
erstellen.
Inhalt kann variieren, aber, vorausgesetzt, Sie haben ein Programm hello.c
genannt ein sehr, sehr einfach Makefile
zu kompilieren es sein könnte:
hello: hello.c
gcc -Wall hello.c -o hello.exe
Danach werden Sie von cygwin
Shell laufen laufen:
$ ls
hello.c Makefile
$ make
....
Und Ihr Makefile
wird versuchen, hello.c
zu kompilieren. Wenn alles wie erwartet geht, können Sie das hello.exe
Programm durch Ausführen der folgenden Shell-Befehl ausführen:
$ ./hello.exe
hier ein nettes Tutorial ist auf Makefiles.
Ein Makefile wird normalerweise nur Makefile
genannt.
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.
Eigentlich sind die Namen, nach denen GNU make sucht, [in der Anleitung] (http://www.gnu.org/software/make/manual/make.html#Makefile-Names) spezifiziert: "Es versucht die folgenden Namen in der richtigen Reihenfolge : GNUmakefile, makefile und Makefile ". – bstpierre
Fair genug. Aber die meisten Leute, die Makefiles schreiben, benutzen diesen Namen. –
Sie können sie benennen, was auch immer Sie mögen, aber ".mak" sieht richtig aus.
... google ... http://msdn.microsoft.com/en-us/library/aa380049%28VS.85%29.aspx ... ja
Nur wenn Sie make mit der Option -f aufrufen, um ihm mitzuteilen, welches Makefile verwendet werden soll. – haziz
Wie Sie Cygwin verwenden, was wiederum bedeutet, dass Sie verwenden GNU machen, führe ich relevant portion of the GNU make manual:
3,2 Was Name Ihr Makefile zu geben
standardmäßig, wenn make für die Make-Datei sucht, versucht es die folgenden Namen in der Reihenfolge: GNUmakefile, Make-Datei und Makefile. Normalerweise sollten Sie Ihre Makefile entweder Makefile oder Makefile aufrufen. (Wir empfehlen Make weil sie prominent in der Nähe von den Beginn einer Verzeichnisliste erscheint, rechts in der Nähe von anderen wichtigen Dateien wie zum wie README.) Der erste Name geprüft, GNUmakefile, ist nicht für meisten Makefiles empfohlen. Sie sollten diesen Namen verwenden, wenn Sie ein Makefile haben, das spezifisch für GNU ist, und nicht , das von anderen Versionen von make verstanden wird. Andere make-Programme suchen nach Makefile und Makefile, aber nicht GNUmakefile.
[...]
Wenn Sie einen Nicht-Standard-Namen für die Make-Datei verwenden möchten, können Sie die Make-Datei-Namen mit dem ‚-f‘ oder '--file Option angeben. Die Argumente '-f name' oder '--file = name' veranlassen make, den Dateinamen als Makefile zu lesen. Wenn Sie mehr als eine '-f' oder '--file' Option verwenden, können Sie mehrere Makefiles angeben. Alle Makefiles werden in der angegebenen Reihenfolge effektiv verkettet. Die Standardnamen Makefile-Namen GNUmakefile, Makefile und Makefile werden nicht automatisch überprüft, wenn Sie '-f' oder '--file' angeben.
Makefiles haben normalerweise keine Erweiterung. Sie werden typischerweise 'Makefile' oder 'Makefile' genannt. Manchmal, wenn jemand eine komplexe Gruppe von Makefiles schreibt, die sich gegenseitig enthalten, erhalten die enthaltenen Dateien die Erweiterung .mak, um anzuzeigen, dass es sich um Makefiles handelt, obwohl sie nicht Makefile heißen.
In den wenigen Orten, an denen ich Erweiterungen verwendet auf Make-Datei Namen gesehen habe, haben sie in der Regel waren entweder .make
oder .gmk
, und selbst dann werden diese Erweiterungen in der Regel für Make-Datei reserviert Fragmente, die von Master-Dateien enthalten sind, einer der gegebenen Standardnamen.
Verwenden Sie die Dateiendung, die Sie mögen. Zum Beispiel, rufen Sie es 'makefile', oder Sie könnten es' makefile.mytotallyawesomemakefiletypeoffile' nennen. – JoshD
Gut auf einem Linux-Rechner hat es normalerweise keine Erweiterung - es ist nur "Makefile" oder "Makefile". Sie können es nennen, was Sie wollen, und verwenden Sie die '-f' Option, um zu sagen," make "was zu verwenden ist. – Pointy