gpt4 book ai didi

c - 创建通用 make 文件时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:13 24 4
gpt4 key购买 nike

嘿,所以我对 makefile 有点陌生,我正在尝试制作一个通用的 makefile,它将编译当前目录中以 .c 结尾的任何文件,而不是为项目专门命名的文件。我搜索了几个地方,重新阅读了我的讲义,尝试了一些更改,但我似乎无法让它工作。这是我拥有的:

CFLAGS= -Wall -g -o
%.o : %.c
gcc ${CFLAGS} .c $<

这是我在尝试运行它时不断遇到的错误:

make: *** No targets.  Stop.

我真的很感激任何帮助,我真的很讨厌一遍又一遍地输入 gcc!该文件名为 Makefile

最佳答案

a generic makefile that will compile whatever files end with .c in the current directory

这是 make 的非典型用法,但可以使用 GNU make 的文本函数来完成:

SOURCES = $(wildcard *.c)
OBJS = $(patsubst %.c,%.o,$(SOURCES))
all: $(OBJS)

如果您的目录中有 foo.cbar.c,运行 make 将生成 foo.obar.o

如果您的意思是希望命令 make 将每个 .c 编译并链接到可执行文件中,请尝试:

SOURCES = $(wildcard *.c)
EXECS = $(patsubst %.c,%,$(SOURCES))
all: $(EXECS)

比较典型的,就是想编译链接一个程序。在这种情况下,您不需要任何 makefile,只需运行这些命令:

make foo
make bar

关于c - 创建通用 make 文件时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21587552/

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