makefile-单独的文件夹
我想编译我的源文件两次,每次使用不同的标志。除此之外,我需要有这些可执行文件,我将在编译后在不同的目录中获取这些文件(因此我希望“make”创建两个文件夹,并在每个文件夹中放置一个可执行文件) 我认为它们的主要问题是我不知道如何处理主对象文件。我们可以用不同的名称创建它们(因为每一组.o文件都应该与另一组具有不同标志的文件有所不同),或者将它们放在我们希望有可执行文件的目录中 我仍然不知道如何优雅地完成:/makefile-单独的文件夹,makefile,compiler-flags,Makefile,Compiler Flags,我想编译我的源文件两次,每次使用不同的标志。除此之外,我需要有这些可执行文件,我将在编译后在不同的目录中获取这些文件(因此我希望“make”创建两个文件夹,并在每个文件夹中放置一个可执行文件) 我认为它们的主要问题是我不知道如何处理主对象文件。我们可以用不同的名称创建它们(因为每一组.o文件都应该与另一组具有不同标志的文件有所不同),或者将它们放在我们希望有可执行文件的目录中 我仍然不知道如何优雅地完成:/ 非常感谢您的帮助:)您没有给我们提供太多的详细信息,因此我假设您有两个源文件,foo.c
非常感谢您的帮助:)您没有给我们提供太多的详细信息,因此我假设您有两个源文件,
foo.c
和bar.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 $@
OBJS:=foo.o bar.o
红色_OBJS:=$(addprefix RED/,$(OBJS))
BLUE_OBJS:=$(addprefix BLUE/,$(OBJS))
$(红色对象):红色/%.o:%.c
$(CC)-c$<-o$@
$(蓝色对象):蓝色/%.o:%.c
$(CC)-c$<-o$@
红色/红色执行官:$(红色对象)
$(CC)$<-o$@
蓝色/蓝色执行官:$(蓝色对象)
$(CC)$<-o$@
您是否在问该怎么做(例如,为对象文件指定不同的名称或将它们放在这两个目录中),或者如何让他们这样做?(我建议将对象文件放在这两个目录中。)这个问题中的一些想法可能就是您想要的。现在的问题是如何强制Make将.o文件放入这两个目录:)