makefile - 单独的文件夹

时间:2013-04-02 13:37:09

标签: makefile compiler-flags

我想每次使用不同的标志编译两次源文件。除此之外,我需要在不同的目录中编译后获得这些可执行文件(所以我想'make'创建两个文件夹并将每个文件夹放入一个可执行文件中。)

我认为他们主要的问题是我不知道主目标文件是怎么回事。认为我们可以使用不同的名称创建它们(因为每组.o文件应该与另一组具有不同标志的文件不同)或者将它们放在我们想要具有可执行文件的目录中。

我仍然不知道如何以优雅的方式做到这一点:/

任何帮助都非常感谢:)

1 个答案:

答案 0 :(得分:0)

您没有向我们提供很多详细信息,因此我假设您有两个源文件foo.cbar.c,并且您正在构建两个目录red/blue/。这是一个粗略的makefile,可以完成这项工作:

OBJS := foo.o bar.o
RED_OBJS := $(addprefix red/,$(OBJS))
BLUE_OBJS := $(addprefix blue/,$(OBJS))

$(RED_OBJS): red/%.o : %.c
    $(CC) -c $< -o $@

$(BLUE_OBJS): blue/%.o : %.c
    $(CC) -c $< -o $@

red/red_exec: $(RED_OBJS)
    $(CC) $< -o $@

blue/blue_exec: $(BLUE_OBJS)
    $(CC) $< -o $@