Archiv verlassen und diese Seite im Standarddesign anzeigen : Makefile
Hallo Leute,
hab ein Problem mit meiner Makefile. Und zwar sieht sie folgendermassen aus:
CC = g++
OBJECTS = main.o KTX.o KTXDefs.o
LIBS = -lSDL_mixer -lSDL_image -lGL -lGLU
CFLAGS =
APPNAME =
sdl: $(OBJECTS)
$(CC) -o $@ $(OBJECTS) $(LIBS)
%.o: %.c %.h
$(CC) -c $(CFLAGS) $<
clean:
rm *.o sdl
Das Problem dabei ist, dass Änderungen an .h Dateien nicht erkannt werden. Wie kriege ich das hin?
Gruß,
KravenZ
...Das Problem dabei ist, dass Änderungen an .h Dateien nicht erkannt werden. Wie kriege ich das hin?
Heissen denn die .h-Dateien auch main.h, KTX.h, KTXDefs.h? Der Platzhalter % löst ja so auf:
main.o: main.c main.h
[TAB]$(CC) ...
usw.
Wenn das nicht so ist, dann wirst Du wohl die .h-Dateien namentlich angeben müssen.
Jan
Hi. Jep die heissen genau so. Deswegen bin ich ja sehr verwundert.
Moin,
ich habe das bei mir mal nachgestellt mit einem Mini-Progrämmchen:
jan@jack:~/tmp/mtest> cat makefile
C = gcc
OBJECTS = main.o m1.o
sdl: $(OBJECTS)
$(CC) -o $@ $(OBJECTS)
%.o: %.c %.h
$(CC) -c $<
clean:
rm *.o sdl
Und dann habe ich ein paar Tests gemacht:
jan@jack:~/tmp/mtest> make
cc -c main.c
cc -c m1.c
cc -o sdl main.o m1.o
jan@jack:~/tmp/mtest> touch m1.h
jan@jack:~/tmp/mtest> make
cc -c m1.c
cc -o sdl main.o m1.o
jan@jack:~/tmp/mtest> touch main.h
jan@jack:~/tmp/mtest> make
cc -c main.c
cc -o sdl main.o m1.o
Wie Du siehst - es funktioniert prinzipiell. Es muss bei Dir eine andere Ursache haben. Ach ja:
jan@jack:~/tmp/mtest> uname -r
2.6.5-7.257-smp
jan@jack:~/tmp/mtest> make -v
GNU Make 3.80
Jan
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.