Skript Programmierung C/C++
Skript Programmierung C/C++
Skript Programmierung C/C++
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Kapitel 15 – Programmerzeugung mit „make“<br />
15.1 Funktions-Templates<br />
Zweck:<br />
- automatische Prüfung von Abhängigkeiten von Programmquellen<br />
- Steuerung der Übersetzungs- und Bindungsvorgänge, der Bibliotheken-Erzeugung, der<br />
Installation von Paketen, der Verzeichnisbereinigung<br />
Beispiel: makefile<br />
#einfacher makefile zu 15.1<br />
qtest 1.0 :„qtest.cc queue_contained.tv g++ -g –Wall –c qtest1.cc –o qtest1.o"<br />
#ausführbare Datei<br />
qtest1: qtest1.o g++ -g –o qtest1.e qtest1.o<br />
wobei der große Abstand durch einen Tabulator erreicht wird und –g für den Debugger steht.<br />
–o wird für objectfiles verwendet. Alle Warnungen sind angeschaltet<br />
#Hilfsdateien löschen<br />
clean: rm –f *.o *.e *.bak<br />
Aufbau einer make-Regel:<br />
Ziel: Abhängigkeiten Abhängigkeiten<br />
Kommando<br />
wobei der Abstand wieder ein Tabulator ist<br />
Aufruf der Kommandozeile:<br />
...> make //nur make tippen<br />
...> make –f makefile<br />
15.1.1 Makros<br />
Zweck:<br />
- Verbesserung / Verkürzung der Schreibweise<br />
- sicherer (jede Inform. nur einmal)<br />
Makrodefinition:<br />
Name = Zeichenkette<br />
Verwendung:<br />
$(Name) oder ${Name}<br />
Beispiel: makefile mit Makros<br />
CC = g++ #Compiler-Name<br />
CFLAGS = –c –g –Wall<br />
LDFLAGS = –g<br />
LIBS = –lm –lg++<br />
qtest1.o:<br />
qtest1.e:<br />
clean:<br />
qtest1.cc queue container.h<br />
$(CC) $(CFLAGS) qtest1.cc qtest1.o<br />
qtest1.o queue container.h<br />
$(CC) $(LDFLAGS) –o $@ qtest1.o $(LIBS)<br />
rm –f *.o *.e *.bak *.bak~<br />
mögliche Aufrufe:<br />
nur Übersetzung von qtest1.cc<br />
make qtest1.o<br />
61