我的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
答案 0 :(得分:0)
您没有创建模式规则,因为目标名称中没有%
。因此,%
在依赖项列表中没有特殊含义。它被视为文件名的文字部分;你不能将它用作常规通配符。