Hallo!
im Prinzip hast du das Makefile doch schon fast da stehen. Es müßte wie folgt aus sehen, und (zwingend) den Dateinamen makefile
haben, dann wird es von make automatisch gefunden.
HalloWelt: HalloWelt.o
gcc –o HalloWelt HalloWelt.o
HalloWelt.o: HalloWelt.c
gcc –c HalloWelt.c
clean:
rm -rf *.o HalloWelt
all: HalloWelt
(Wichtig: Die Einrückung muß ZWINGEND mit einem Tab erzeugt werden, nicht mit Leerzeichen. Viele Editoren fügen beim Druck auf Tab aber mehrere Leerzeichen ein, das läßt sich aber einstellen.)
Das liest sich wie folgt:
- Um
HalloWelt
zu erzeugen, wird HalloWelt.o
benötigt. Es wird dann der Befehl gcc -o ...
ausgeführt.
- Um
HalloWelt.o
zu erzeugen, wird HalloWelt.c
benötigt, und dann der Befehl gcc -c ...
ausgeführt.
- Um
clean
zu… erreichen, wird nichts benötigt, und dann der Befehl rm -rf ...
ausgeführt.
- Um
all
zu erreichen, wird HalloWelt benötigt, aber kein Befehl ausgeführt
Nun reicht der Befehl make all
oder make HalloWelt
auf der Kommando-Zeile, um aus deiner c-Datei eine ausführbare Datei zu machen. Make erkennt dabei, daß deine Datei HalloWelt.c
neuer ist als HalloWelt.o
, und erstellt letztere dann neu. Und weil HalloWelt.o
dann neuer ist als HalloWelt
, wird auch der Linker nochmal aufgerufen. Der Vorteil daran ist, daß bei sehr vielen Dateien in einem Projekt nur die Sachen neu gemacht werden, bei denen es Änderungen gegeben hat. Ansonsten kannst du mit make clean
alles löschen, und alles nochmal machen lassen.
Make ist ein sehr einfaches Werkzeug, auch wenn man noch vieles anderes damit machen kann. Automake arbeitet auf einem höheren Level, und ist dazu gemacht, größere Projekte, die aus vielen Dateien und Verzeichnissen bestehen, zu kompilieren. Denn das alles mit make zu machen, wäre ein großer Aufwand, und fehlerträchtig. ABER: automake erstellt selbst auch nur makefiles, und man ruft dann doch wieder nur make auf. Es ist in dem Fall gut, wenn man sich erstmal mit make und seinen makefiles auskennt.
Da du grade mit C anfängst, und deine Projekte noch nicht all zu groß werden, empfehle ich dir, erstmal nur make zu benutzen. Später kannst du immernoch automake benutzen, oder auch was moderneres wie cmake. Aber selbst cmake macht nur makefiles, und benutzt dann make.