2016-07-27 28 views
0

Ich versuche, das Debuggen Ziele zu einem Projekt wie all-dbg hinzufügen, aber ich erhalte eine Fehlermeldung:Make sieht nicht Regel mit% -Marke

$ make all-dbg 
    make: *** No rule to make target 'tted.o-dbg', needed by 'tted-dbg'. Stop. 

Hier ist das Makefile:

TARGET=tted 
    CC=gcc 
    CFLAGS=-Wall -std=c99 
    CFLAGS-dbg=-g 
    LDFLAGS=-lncurses 

    all: $(TARGET) 

    all-dbg: $(TARGET)-dbg 

    SOURCES=$(wildcard *.c) 
    HEADERS=$(wildcard *.h) 
    OBJECTS=$(patsubst %.c, %.o, $(SOURCES)) 
    OBJECTS-dbg=$(patsubst %.c, %.o-dbg, $(SOURCES)) 
    PCHEADERS=$(HEADERS:=.gch) 

    %.o: %.c 
      $(CC) $(CFLAGS) -c $< -o [email protected] 

    %.o-dbg: %c 
      $(CC) $(CFLAGS) $(CFLAGS-dbg) -c $< -o [email protected] 

    %.h.gch: %.h 
      $(CC) $(CFLAGS) $< 

    $(TARGET): $(PCHEADERS) $(OBJECTS) 
      $(CC) $(OBJECTS) $(LDFLAGS) -o [email protected] 

    $(TARGET)-dbg: $(PCHEADERS) $(OBJECTS-dbg) 
      $(CC) $(OBJECTS-dbg) $(LDFLAGS) -o [email protected] 

    clean: 
      -rm -f *.o 
      -rm -f *.o-dbg 
      -rm -f *.h.gch 
      -rm -f $(TARGET) 
      -rm -f $(TARGET)-dbg 

Irgendwelche Vorschläge?

Antwort

1

Du einen Punkt in %.o-dbg: %c fehlt. Es sollte wahrscheinlich %.o-dbg: %.c stattdessen lesen.

+0

Oh, danke. :-) – velikiyv4