通过Makefile在特定目录中创建目标文件

时间:2017-04-19 09:43:08

标签: c makefile

虽然这很有效:

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.

任何方向,如何实现?

2 个答案:

答案 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
相关问题