我有大量的小型C程序(所有单个.c文件),我想将它们全部构建成单独的可执行文件。也就是说,prog-01.c
,prog-02.c
等应该单独构建,结果应该是该程序的单个可执行文件。
我在makefile中使用通配符相对较新,我很感激一些帮助。这是我到目前为止所做的:
CC = gcc
CFLAGS = -g -Wall -Werror
SRCS:=$(wildcard *.c)
OBJS:=$(SRC:.c=.bin)
all-gcc: $(SRCS)
$(CC) $(CFLAGS) $(SRCS) -o $(OBJS)
run-%-gcc: prog-%-gcc
@./$(<)
prog-%-gcc: prog-%.c
$(CC) $(CFLAGS) $< -o $@
clean:
@rm *.o
答案 0 :(得分:1)
如果我走这条路,我可能会使用:
CC = gcc
CFLAGS = -g -Wall -Werror
SRCS := $(wildcard *.c)
PROGS := $(SRCS:.c=)
OBJS := $(SRCS:.c=.o)
all: $(PROGS)
clean:
rm -f $(OBJS) $(PROGS)
这会将每个文件program.c
转换为可执行文件program
,使用默认规则从C源文件构建程序。