看板 LinuxDev 關於我們 聯絡資訊
※ 引述《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 $@ $@.c 還可以更精簡一些, 如下所示: SRCS = $(shell ls *.c) all: $(SRCS:.c=) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.249.207.134 ※ 編輯: phterry 來自: 60.249.207.134 (08/27 19:29)
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)