我有大量的小型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

最佳答案

如果我走这条路,我可能会使用:

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/

10-11 21:03