gpt4 book ai didi

linux - Cygwin 和 makefile

转载 作者:太空狗 更新时间:2023-10-29 12:37:43 24 4
gpt4 key购买 nike

我是 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 文件”),但这会将目标文件放在 obj/并在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 更简洁、更短、更灵活,但它们是高级技术。

关于linux - Cygwin 和 makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6354319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com