Object Makefile:如何指定在何处生成对象

Object Makefile:如何指定在何处生成对象,object,makefile,repository,directory,Object,Makefile,Repository,Directory,我想为我在makefile中生成的对象指定一个存储库 我搜索了一段时间,但只找到了详细的解决方案,一个对象列表,而我只想针对一个对象 (makefile对我来说是新的,所以越简单越好) 这是我的密码: /////////////////////////////////// *definition of several directories* *definition of CC, CFLAGS, CInclude* cutgen: $(CC) $(CFlags) -D__LINUX_

我想为我在makefile中生成的对象指定一个存储库

我搜索了一段时间,但只找到了详细的解决方案,一个对象列表,而我只想针对一个对象

(makefile对我来说是新的,所以越简单越好)

这是我的密码:

///////////////////////////////////
*definition of several directories*
*definition of CC, CFLAGS, CInclude*

cutgen: 
    $(CC) $(CFlags) -D__LINUX__ $(CDir)cutgen.c -o cutgen

check: cutgen cutcheck.c *list of objects here*
    $(CC) $(CFlags) -I $(CHeaderDir) cutcheck.c *list of objects here* -o cutcheck
    ./cutcheck

cutcheck.c: cutgen test.o 
    ./cutgen $(CDir)test.c -o cutcheck.c

test.o:  util.o 
    $(CC) $(CFlags) -c $(CInclude) $(CDir)test.c

util.o:  config.o 
    $(CC) $(CFlags) -c $(CInclude) $(GenDir)util.c

...

...

stubs.o: 
    $(CC) $(CFlags) $(CInclude) -c $(StubsDir)stubs.c 

clean:
    rm -f *.o *~ cutcheck* cutgen

all: check
///////////////////////////////////
例如,在这里,我想在Objects文件夹中生成util.o。 任何帮助都将不胜感激,提前谢谢

$(Objects)/util.o:  config.o 
    $(CC) $(CFlags) -c $(CInclude) $(GenDir)util.c -o $@

(你确定这个先决条件吗?我认为
$(GenDir)util.c
可能比
config.o
好)

非常感谢你的回答!事实上,关于先决条件,你是对的。但是,当我应用您的更改时:-如果我以前为“对象”指定了一个路径,我会得到一个“***目标模式不包含“%”。停止。”-如果我用$(对象)/util.o替换util.o的每一次出现,那么就不会生成util.o。@JohnBob:我无法重现您的错误。你能发布一个,最短的makefile,它应该可以生成目标文件,但是失败了吗?你好,我为我的回复太晚而道歉。我开始创建一个最小的完整示例,但后来得到了一个适合我需要的替代解决方案,所以我的问题得到了解决。这里的解决方案是:mvutil.o./Objects/bash命令将我的文件移动到指定的目录。非常感谢您的帮助@Beta!