34

GNU Make を使用して、ディレクトリ内のすべての C ファイルを個別のプログラムにコンパイルし、各プログラムを .c 拡張子なしでソース ファイルとして指定する方法はありますか?

4

3 に答える 3

55
SRCS = $(wildcard *.c)

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

all: $(PROGS)

%: %.c

        $(CC) $(CFLAGS)  -o $@ $<
于 2010-04-24T20:46:46.600 に答える
7

makefileさえ必要ないと思います-デフォルトの暗黙的なmakeルールでそれを行う必要があります:

$ 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

コマンドラインをもう少しシンプルにするために編集されました。

于 2010-04-24T20:52:26.683 に答える