我有大量的小型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
最佳答案
如果我走这条路,我可能会使用:
CC = gcc
CFLAGS = -g -Wall -Werror
SRCS := $(wildcard *.c)
PROGS := $(SRCS:.c=)
OBJS := $(SRCS:.c=.o)
all: $(PROGS)
clean:
rm -f $(OBJS) $(PROGS)
使用默认规则从C源文件构建程序,这会将每个文件
program.c
转换为可执行文件program
。关于c - 在makefile中批量构建源代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26415370/