虽然这很有效:
object.o: $(SRCDIR)object.c
$(CC) -c $(CFLAGS) $(INCLUDEDIR) $<
mv object.o $(OBJDIR)
目标是在创建目录时自动创建.o文件。即。不喜欢先创建再移动。
我这样做了:
$(OBJDIR)/object.o: $(SRCDIR)object.c
$(CC) -c $(CFLAGS) $(INCLUDEDIR) $<
此输出:make: *** No rule to make target 'object.o', needed by 'all'. Stop.
任何方向,如何实现?
答案 0 :(得分:1)
我认为你正在寻找这样的东西:
$(OBJS) = $(patsubst $(SRCS),$(SRCDIR)/%.c,$(OBJDIR)/%.o)
$(OBJS) : $(SRCDIR)/%.o : $(OBJDIR)/%.c
@echo "$< => $@"
@$(CC) -c -o $@ $(CFLAGS) $(INCLUDEDIR) $<
这是一个execution time statistics,它表示使用特定模式构建对象。请注意,我假设您将/
移出$(SRCDIR)
(因为它更干净)。
答案 1 :(得分:0)
解决了它。
.chart-r