2010-10-18 16 views
7

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

+0

Verwenden Sie die Dateiendung, die Sie mögen. Zum Beispiel, rufen Sie es 'makefile', oder Sie könnten es' makefile.mytotallyawesomemakefiletypeoffile' nennen. – JoshD

+0

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

Antwort

1

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 =)

0

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.

0

Ein Makefile wird normalerweise nur Makefile genannt.

8

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.

+6

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

+0

Fair genug. Aber die meisten Leute, die Makefiles schreiben, benutzen diesen Namen. –

11

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.

0

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.

1

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.