我有点使用makefiles的初学者,我正在尝试为gcc编写一个makefile,它接受来自两个不同目录(在我的情况下称为内核和驱动程序)的输入,并输出目标文件一个使用通配符的不同目录(称为tmp)。Makefiles输出目录
我写了这个代码来获取输入文件的名称和输出文件
C_SOURCES = $(wildcard $(KERNEL_DIR)/*.c $(DRIVERS_DIR)/*.c)
#Creating a list for object files names
C_OBJ = $(C_SOURCES:.c=.o)
,我使用下面的规则
%.o: %.c $(CC) $(CFLAGS) -c $< -o [email protected]
,但我不能让输出目标文件在所需的目录。文件
以及如何我应该修改规则吗? 我用下面的一个 '%的.o:%.c的 \t $(CC)$(CFLAGS)-c $ <-o $ @' – 2013-04-27 17:41:07
@PatrickJane,这是一个困难的。既然你只需要一个输出目录,那就很困难。我建议你不要那样做,而是在'tmp'中镜像输入目录结构 - 然后你将每个'.o'文件映射到一个'.c'文件并使你的生活更轻松。 – 2013-04-27 17:44:48