- 静态模式太好用了,主要是为了便捷的生成多目标。
- 普通Makefile如下:
target ... : prerequisites ...
command
...
...
command通过prerequisites 生成target 。
command 中 $^
表示所有的prerequisites文件 , $<
表示第一条 prerequisites文件 , $@
表示target 。
- 静态模式如下:
<targets ...>: <target-pattern>: <prereq-patterns ...>
<commands>
...
targets中有多个目标,执行这一块时,依次将targets中的每个元素作为target-pattern。prereq-patterns为每一个target-pattern的prerequisites 。
所以生成多目标时,可以这样写:
$(TARGETS):%.out:%.c $(INC_SRC)
@ echo CXX/LD -o $@ $<
@ $(CC) $^ $(CCFLAGS) -o $@ $(INCLUDES) $(LIBS)
其中%为通配符, %.c的功能是将target-pattern的后缀.out改为.c 。
%.c $(INC_SRC)为prereq-patterns , $(INC_SRC) 指include文件和lib文件下的.c文件