gpt4 book ai didi

c - Makefile 将所有 *.c 转换为 *.o

转载 作者:太空狗 更新时间:2023-10-29 15:28:56 26 4
gpt4 key购买 nike

我正在编写一个 Makefile 用于将目录中的所有 *.c 文件编译成*.o。有很多 *.c 文件,所以我不想一个一个地做,

我试过了

%.o: %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<

但这不起作用...请帮助我了解这里出了什么问题...

最佳答案

您的规则将单个 .c 文件映射到单个 .o,并反射(reflect)现有的 implicit rule .

为了生成与一组.c 文件相对应的所有.o 文件,您可以从 列表中创建目标文件名列表>.c 文件,然后创建一个依赖于该列表的目标:

SRC = $(wildcard *.c)               # list of source files
OBJS = $(patsubst %.c, %.o, $(SRC)) # list of object files
objs : $(OBJS) # target

然后生成目标文件

make objs

这将为每个 .c 构建一个 .o 文件。

关于c - Makefile 将所有 *.c 转换为 *.o,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28559338/

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