批量生成makefile中的源代码

时间:2014-10-16 23:09:36

标签: c makefile wildcard gnu-make

我有大量的小型C程序(所有单个.c文件),我想将它们全部构建成单独的可执行文件。也就是说,prog-01.cprog-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

1 个答案:

答案 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源文件构建程序。