makefile文件将OBJ文件中单独的目录

问题描述:

为什么makefile文件将OBJ文件中单独的目录

$(OBJDIR)\%.o:$(SRDDIR)\%.s 
    $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o [email protected] 

$(OBJDIR)\%.o:$(SRDDIR)\%.c 
    $(GCC) -c -g -I$(SRCDIR) $(CFLAGS) $< -o [email protected] 

给出警告(说忽略了第一条规则) 其中作为

%.o:%.s 
    $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o [email protected] 

%.o:%.c 
    $(GCC) -c -g -I$(SRCDIR) $(CFLAGS) $< -o [email protected] 

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

+0

使用四个空格缩进来获得'monospaced output'。另外,通常你应该使用'$(CC)'来调用编译器,而不是'$(GCC)'。 – 2010-11-03 19:27:54

+0

这应该是'SRCDIR'而不是'SRDDIR'吗? – 2010-11-04 05:25:46

GCC的-o标志决定输出文件的制作位置。

所以,如果你改变这可能工作:

%.o:%.s $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o [email protected] 

TO

%.o:%.s $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o myoutputdir/[email protected] 

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