作者phterry (小风)
看板LinuxDev
标题Re: [问题] 各自build出各自.c的执行档Makefile
时间Thu Aug 27 19:05:54 2009
※ 引述《awaysu (阿伟苏)》之铭言:
: 请教一下各位
: 目录有aaa.c, bbb.c, ccc.c
: 请问我要各自build出各自的执行档aaa, bbb, ccc
: Makefile要如何写?
: 感谢!!
: 例如:
: SRC = aaa.c bbb.c ccc.c
: 是利用回圈之类的吗?
: 感谢~
SRCS = $(shell ls *.c)
TARGETS = $(SRCS:.c=)
all: $(TARGETS)
$(TARGETS):
$(CC) -o $@
[email protected]
还可以更精简一些, 如下所示:
SRCS = $(shell ls *.c)
all: $(SRCS:.c=)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.249.207.134
※ 编辑: phterry 来自: 60.249.207.134 (08/27 19:29)
1F:推 dozer:$(wildcard *.c) 好像会比较portable? 09/01 15:40
用 wildcard function 也不错, 这让我想起另一个好用的 function, 叫做
patsubst, 可以用来置换字串, 因此, 如果资料夹底下有很多 .c 档, 每一
个 .c 档都要各自编译成一个执行档的话, Makefile 里只需要下列这一行
就可以了:
all: $(patsubst %.c,%,$(wildcard *.c))
※ 编辑: phterry 来自: 60.249.207.134 (09/02 14:14)