gcc Makefile:%变量替换错误

时间:2012-03-01 12:14:46

标签: variables makefile

我的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

1 个答案:

答案 0 :(得分:0)

您没有创建模式规则,因为目标名称中没有%。因此,%在依赖项列表中没有特殊含义。它被视为文件名的文字部分;你不能将它用作常规通配符。