我有简单的makefile:
CC=gcc
CFLAGS=-I.
DEPS = hellomake.h
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
hellomake: hellomake.o hellofunc.o
gcc -o hellomake hellomake.o hellofunc.o -I.
根据makefile描述&#34; makefile中的第一个规则是默认目标&#34;。根据我的理解,第一条规则是:
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
但我认为这不是&#34;默认目标&#34;既然目标是创建hellomake
可执行文件?我的错误在哪里?
答案 0 :(得分:0)
根据gnu制作手册,By default, make starts with the first target (not targets whose names start with ‘.’)
。
%.o : ...
不算作实际目标,而是一种模式,在需要时可以解析为实际目标。