有没有办法使用GNU Make将一个目录中的所有C文件编译成单独的程序,每个程序都命名为源文件,而不使用.c扩展名?
发布于 2010-04-25 04:46:47
SRCS = $(wildcard *.c)
PROGS = $(patsubst %.c,%,$(SRCS))
all: $(PROGS)
%: %.c
$(CC) $(CFLAGS) -o $@ $<发布于 2010-04-25 04:52:27
我认为你甚至不需要makefile -默认的隐式make规则就可以做到:
$ ls
src0.c src1.c src2.c src3.c
$ make `basename -s .c *`
cc src0.c -o src0
cc src1.c -o src1
cc src2.c -o src2
cc src3.c -o src3对命令行进行了编辑,使其更简单。
发布于 2015-09-17 12:35:31
SRCS = $(wildcard *.c)
PROGS = $(patsubst %.c,%,$(SRCS))
all: $(PROGS)
%: %.c
$(CC) $(CFLAGS) -o $@ $<
clean:
rm -f $(PROGS)通过添加“干净”目标来改进Martin Broadhurst的答案。"make clean“将清除所有可执行文件。
https://stackoverflow.com/questions/2706064
复制相似问题