Makefile: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 17: | Zeile 17: | ||
*rm -f hello | *rm -f hello | ||
*rm -f *.o | *rm -f *.o | ||
| − | + | Hier erzeugt der Befehl aber keine Datei mit Namen clean | |
| − | + | Existiert aber eine Datei mit Namen clean funktioniert make | |
clean nicht mehr | clean nicht mehr | ||
I Um das das zu beheben müssen solche unechten Regeln mit | I Um das das zu beheben müssen solche unechten Regeln mit | ||
.PHONY gekennzeichnet werden: | .PHONY gekennzeichnet werden: | ||
.PHONY: clean | .PHONY: clean | ||
Version vom 6. Mai 2022, 08:05 Uhr
Automatische Variablen
- $@ Name das Ziels
- $^ Name aller Voraussetzungen, getrennt durch Leerzeichen
- $< ist die erste Voraussetzung
Beispiele:
hello: main.o helper.o
$(CC) $(CC_OPTS) $^ -o $@
main.o: main.c $(HEADERS)
$(CC) $(CC_OPTS) -c $
Phony Targets
I Manchmal will man make nur benutzen um ein paar Befehle auszuführen, hier löscht make clean die auszuführbare Datei und alle Objektdateien: clean:
- rm -f hello
- rm -f *.o
Hier erzeugt der Befehl aber keine Datei mit Namen clean Existiert aber eine Datei mit Namen clean funktioniert make clean nicht mehr I Um das das zu beheben müssen solche unechten Regeln mit .PHONY gekennzeichnet werden: .PHONY: clean