Мой make-файл работал до тех пор, пока я не попытался заменить некоторые переменные. % .o не распознается.
Я получаю make: * Нет правила для создания цели `% .o ', необходимой для` parser'. Стоп.
CC=gcc
CFLAGS=-ansi -pedantic -Wall -ggdb3
PROJECT=project.c project.h
PARSER=parser.c parser.h
OBJ=project.o parser.o
#CFILE=project.c parser.c
#1 no problem
#parser: project.o parser.o
# $(CC) $(CFLAGS) -o $@ $^
#2 no problem
#parser: $(OBJ)
# $(CC) $(CFLAGS) -o $@ $^
#3 this fails
parser: %.o
$(CC) $(CFLAGS) -o $@ $^
#parser: project.o parser.o
# gcc -ansi -pedantic -Wall -ggdb -o parser project.o parser.o
project.o: $(PROJECT)
$(CC) $(CFLAGS) -c $^
parser.o: $(PARSER)
$(CC) $(CFLAGS) -c $^
clean:
rm -f $(OBJ) parser