我有一条规则
*.o: *.c
gcc <certain compiler switches>
我想使用与标准规则不同的编译器开关构建一些* .c文件。
我相信我只是在第一条规则之前添加
foo.o : foo.c
foobar.o : foobar.c
gcc <other compiler switches>
foo和foobar的显式规则是否会覆盖* .o:* .c规则?
答案 0 :(得分:0)
你的makefile有很多问题。 *.o: *.c
使用shell通配符,几乎肯定不是你想要的。您可能希望使用make通配符 - %.o: %.c
编写模式规则。我不喜欢这些(模式规则)。我总是喜欢在makefile中非常明确。类似的东西:
SRCS := foo.c foobar.c
OBJS := ${SRCS:%.c=%.o}
${OBJS}: %.o: %.c
gcc ${OPTS-${@D}} $< -o $@
现在,您可以根据需要定义OPTS-foo
和OPTS-foobar
。