Makefile: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Mario.zimmermann (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Mario.zimmermann (Diskussion | Beiträge)
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 $