makefile将objs放在单独的目录中

时间:2010-11-03 18:15:43

标签: makefile gnu-make

为什么

$(OBJDIR)\%.o:$(SRDDIR)\%.s
    $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o $@

$(OBJDIR)\%.o:$(SRDDIR)\%.c
    $(GCC) -c -g -I$(SRCDIR) $(CFLAGS) $< -o $@

发出警告(忽略第一条规则) 在哪里

%.o:%.s
    $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o $@

%.o:%.c
    $(GCC) -c -g -I$(SRCDIR) $(CFLAGS) $< -o $@

工作正常,但我将在同一目录中拥有所有源和obj。 我想把objs(从汇编文件和c文件生成)放在一个单独的目录中(我在windows上运行make)。

2 个答案:

答案 0 :(得分:1)

尝试使用正斜杠(“/”)而不是向后斜杠(“\”)。

答案 1 :(得分:0)

GCC的-o标志确定输出文件的位置。

所以如果你改变了,这可能会有用:

%.o:%.s $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o $@

%.o:%.s $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o myoutputdir/$@