Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Makefile

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.11.2006
    Beiträge
    13

    Makefile

    Hallo Leute,

    hab ein Problem mit meiner Makefile. Und zwar sieht sie folgendermassen aus:
    Code:
    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

  2. #2
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Zitat Zitat von KravenZ Beitrag anzeigen
    ...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

  3. #3
    Registrierter Benutzer
    Registriert seit
    20.11.2006
    Beiträge
    13
    Hi. Jep die heissen genau so. Deswegen bin ich ja sehr verwundert.

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Moin,

    ich habe das bei mir mal nachgestellt mit einem Mini-Progrämmchen:
    Code:
    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:
    Code:
    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:
    Code:
    jan@jack:~/tmp/mtest> uname -r
    2.6.5-7.257-smp
    jan@jack:~/tmp/mtest> make -v
    GNU Make 3.80
    Jan

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •