Übung 2: Anmerkung zu Make

Moderator: SE - Wartung und Qualitätssicherung

morgoth
Erstie
Erstie
Beiträge: 12
Registriert: 8. Jan 2008 00:19

Übung 2: Anmerkung zu Make

Beitrag von morgoth » 14. Jul 2011 10:47

Hey,

da es bei uns in der Übung als falsch angestrichen wurde und in dem Lösungsvorschlag der selbe Fehler auftritt:
In Aufgabe 1 c wird die Datei tiger.jpg verändert und anschließend make aufgerufen. Dabei wird

Code: Alles auswählen

zip pictures.zip puma.png tiger.png
ausgeführt!
Nicht nur

Code: Alles auswählen

zip pictures.zip tiger.png 
Das kommt daher, dass make an der Stelle nicht weiß welche Dateien neu sind und welche nicht, da lediglich $(OBJECTS) an zip übergeben wird. Um das (nach Lösungsvorschlag) gewünschte Ergebnis zu erhalten müsste

Code: Alles auswählen

$(ARCHIVE) $(ARCHIVENAME) $(OBJECTS)
durch

Code: Alles auswählen

$(ARCHIVE) $(ARCHIVENAME) $?
ersetzt werden.

greets

Benutzeravatar
saller
Moderator
Moderator
Beiträge: 161
Registriert: 12. Okt 2007 15:14
Wohnort: Darmstadt
Kontaktdaten:

Re: Übung 2: Anmerkung zu Make

Beitrag von saller » 15. Jul 2011 14:59

Hallo,

Alles klar - habe ich geändert. - Dank Dir für den Hinweis!

Beste Grüße
Karsten

Benutzeravatar
s!mon
Computerversteher
Computerversteher
Beiträge: 373
Registriert: 20. Okt 2007 18:24
Wohnort: Höchst i. Odw

Re: Übung 2: Anmerkung zu Make

Beitrag von s!mon » 16. Jul 2011 14:52

Hätte auch mal noch eine Frage zu der Übung. Was passiert eigentlich bei der Aufgabe 1f, wenn man im Ordner auch noch eine Datei leopard.jpg hat und nicht nur leopard.bmp?

Man hat ja dann folgenden Code:

Code: Alles auswählen

OBJECTS = $(patsubst %.jpg, %.png, $(wildcard *.jpg)\
$(patsubst %.bmp, %.png, $(wildcard *.bmp)

%.png : %.jpg
$(CONVERT) $< $@

%.png : %.bmp
$(CONVERT) $< $@
Man hätte ja zwei mal das gleiche Ziel (leopard.png) wenn man die Makros expandiert und hätte dann eigentlich drei Möglichkeiten:
- Es gibt einen Fehler und Programmabbruch
- Es werden beide Ziele ausgeführt und dadurch eine Datei überschrieben
- Es wird beispielsweise nur das erste Ziel ausgeführt, dass auf die Beschreibung passt.

Kann mir jemand sagen was dann passiert?

Antworten

Zurück zu „Software Engineering - Wartung und Qualitätssicherung“