makefile - 单独的文件夹

Posted

技术标签:

【中文标题】makefile - 单独的文件夹【英文标题】:makefile - separate folders 【发布时间】:2013-04-02 13:37:09 【问题描述】:

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

我认为他们的主要问题是我不知道如何管理目标文件。认为我们可以使用不同的名称创建它们(因为每组 .o 文件都应该以某种方式与具有不同标志的另一组不同)或者将它们放在我们想要拥有可执行文件的目录中。

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

非常感谢任何帮助:)

【问题讨论】:

您是在问该怎么做(例如,给目标文件不同的名称或将它们放在这两个目录中),或者如何让 Make 去做? (我建议将目标文件放在这两个目录中。) 这个问题中的一些想法可能是您正在寻找的。 ***.com/questions/8280963/… 问题可以使用更多细节。 所以现在我的问题是如何强制 Make 将 .o 文件放入这两个目录:) 【参考方案1】:

你没有给我们很多细节,所以我假设你有两个源文件,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 $@

【讨论】:

以上是关于makefile - 单独的文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何更改我的 makefile 以构建到单独的文件夹中

如何让 Makefile 将 obj 文件放在单独的目录中?

Makefile的两种编译方法——原地编译和单独输出文件夹编译

uboot学习之二----主Makefile学习之四----两种编译方法:原地编译和单独输出文件夹编译

编写一个通用的Makefile文件

在单独的文件夹中生成依赖文件