首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将一个目录中的所有C文件编译成单独的程序

将一个目录中的所有C文件编译成单独的程序
EN

Stack Overflow用户
提问于 2010-04-25 04:45:44
回答 3查看 25.7K关注 0票数 34

有没有办法使用GNU Make将一个目录中的所有C文件编译成单独的程序,每个程序都命名为源文件,而不使用.c扩展名?

EN

回答 3

Stack Overflow用户

发布于 2010-04-25 04:46:47

代码语言:javascript
复制
SRCS = $(wildcard *.c)

PROGS = $(patsubst %.c,%,$(SRCS))

all: $(PROGS)

%: %.c

        $(CC) $(CFLAGS)  -o $@ $<
票数 55
EN

Stack Overflow用户

发布于 2010-04-25 04:52:27

我认为你甚至不需要makefile -默认的隐式make规则就可以做到:

代码语言:javascript
复制
$ 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

对命令行进行了编辑,使其更简单。

票数 7
EN

Stack Overflow用户

发布于 2015-09-17 12:35:31

代码语言:javascript
复制
SRCS = $(wildcard *.c)

PROGS = $(patsubst %.c,%,$(SRCS))

all: $(PROGS)

%: %.c
        $(CC) $(CFLAGS) -o $@ $<
clean: 
        rm -f $(PROGS)

通过添加“干净”目标来改进Martin Broadhurst的答案。"make clean“将清除所有可执行文件。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2706064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档