Makefile:一次编译所有c源文件

时间:2015-12-01 02:33:16

标签: makefile gnu-make

我有这样的源代码树。

├── Makefile
└── src
    ├── bar.c
    └── foo.c

我知道我可以使用

编译src中的所有源代码
src/%.o: src/%.c
   gcc -c -o $@ $<

但我已经尝试了这个并得到了这个结果..

SRCS = $(wildcard ./src/*.c)
OBJS = $(patsubst %.c, %.o, $(SRCS))
all: $(OBJS) main

main:
        gcc $(OBJS) -o main

$(OBJS): $(SRCS)
        gcc -c -o $@ $<

并得到这个结果。

gcc -c -o foo.o ./src/foo.c
gcc -c -o bar.o ./src/foo.c

为什么选择gcc -c -o bar.o ./src/foo.c? 即使它具有与

相同的格式
src/%.o: src/%.c
   gcc -c -o $@ $<

0 个答案:

没有答案