Makefile: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
=Variablen= | =Makefiles= | ||
*Der Befehl make Ziel versucht die Datei Ziel zu erstellen, | |||
wird kein Ziel angegeben wird automatisch das erste in der | |||
Makefile benutzt | |||
*Dateinamen f ̈ur Makefile sind makefile, Makefile, | |||
GNUmakefile | |||
*make -j N erlaubt N Jobs gleichzeitig (eventuell große | |||
Zeitersparniss bei gr ̈oßeren Projekten) | |||
==Variablen== | |||
*Man kann Variablen in Makefiles definieren: | *Man kann Variablen in Makefiles definieren: | ||
<syntaxhighlight lang="makefile"> | <syntaxhighlight lang="makefile"> | ||
| Zeile 13: | Zeile 22: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=Automatische Variablen= | ==Automatische Variablen== | ||
*$@ Name das Ziels | *$@ Name das Ziels | ||
*$^ Name aller Voraussetzungen, getrennt durch Leerzeichen | *$^ Name aller Voraussetzungen, getrennt durch Leerzeichen | ||
Version vom 6. Mai 2022, 08:08 Uhr
Makefiles
- Der Befehl make Ziel versucht die Datei Ziel zu erstellen,
wird kein Ziel angegeben wird automatisch das erste in der Makefile benutzt
- Dateinamen f ̈ur Makefile sind makefile, Makefile,
GNUmakefile
- make -j N erlaubt N Jobs gleichzeitig (eventuell große
Zeitersparniss bei gr ̈oßeren Projekten)
Variablen
- Man kann Variablen in Makefiles definieren:
CC = gcc
CC_OPTS = -O2 -Wall -Wextra -std=c11
HEADERS = header1.h header2.h
- Und dann benutzen:
main.o: main.c $(HEADERS)
$(CC) $(CC_OPTS) -c main.c
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 $