Re: [問題] 各自build出各自.c的執行檔Makefile

看板LinuxDev作者 (小風)時間15年前 (2009/08/27 19:05), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《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)

09/01 15:40, , 1F
$(wildcard *.c) 好像會比較portable?
09/01 15:40, 1F
用 wildcard function 也不錯, 這讓我想起另一個好用的 function, 叫做 patsubst, 可以用來置換字串, 因此, 如果資料夾底下有很多 .c 檔, 每一 個 .c 檔都要各自編譯成一個執行檔的話, Makefile 裡只需要下列這一行 就可以了: all: $(patsubst %.c,%,$(wildcard *.c)) ※ 編輯: phterry 來自: 60.249.207.134 (09/02 14:14)
文章代碼(AID): #1AbcYMy6 (LinuxDev)
文章代碼(AID): #1AbcYMy6 (LinuxDev)