如何解决Cygwin和makefile
| 我是makefile的新手,并且正在使用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]文件放在指定目录中?
解决方法
您没有说出这些文件的位置(我对您所说的“ mk文件”一无所知),但这会将目标文件放在in2ѭ中,并在
bin/
中构造gola
。
vpath %.c bad good ugly
# gcc $(CFLAGS) -c $< -o $@ this line makes no sense
OBJECTS = obj/goka.o obj/foka.o obj/hoka.o
bin/gola: $(OBJECTS)
gcc $^ -o $@
$(OBJECTS): obj/%.o : %.c
gcc -c $< -o $@
有一些方法可以使makefile文件更简洁,更短,更灵活,但是它们是高级技术。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。