Makefile中的静态模式和多目标规则

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yanhe156/article/details/83116483
  • 静态模式太好用了,主要是为了便捷的生成多目标。
  • 普通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文件

猜你喜欢

转载自blog.csdn.net/yanhe156/article/details/83116483
今日推荐