我是makefiles的新手,我正在使用Cygwin制作我的文件。我在三个不同的目录中有源文件,我使用VPATH技术编译它们,但目标文件是在当前目录中生成的。
我希望在一个目录中生成所有目标文件 和目标文件在其他目录中。 [也就是说,其他目录中的.mk文件]我该怎么做?如何告诉编译器在指定的目录中生成它们?
这是我的计划:
vpath %.c bad good ugly
gcc $(CFLAGS) -c $< -o $@
gola:goka.o foka.o hoka.o
gcc $^ -o $@
goka.o:goka.c
gcc -c $<
foka.o:foka.c
gcc -c $<
hoka.o:hoka.c
gcc -c $<
如何将所有目标文件放在一个目录中,并将gola
[mk]文件放在指定目录中?
答案 0 :(得分:1)
你还没有说过你想要这些文件的位置(我无法理解你所说的“mk文件”),但这会将目标文件放在obj/
并构造{{ 1}} gola
。
bin/
有一些方法可以使makefile更清晰,更短,更灵活,但它们是先进的技术。