Makefile的规则

来源:互联网 发布:影楼制作软件apk 编辑:程序博客网 时间:2024/05/20 00:51

规则基本构成:

  • 目标
  • 目标依赖
  • 命令

出现方式:

目标:目标依赖
TAB 命令

注意事项:

  • 命令必须使用tab键开头、一般是shell命令
  • 一个规则中可以无目标依赖,仅仅实现某种操作
  • 一个规则中可以没有命令,仅仅描述依赖关系
  • 一个规则中必须有一个目标

目标可以分为:

默认目标
一个Makefile里可以有多个目标
一般会选择第一个作为默认目标:all:
多目标
一个规则中可以有多个目标
多个目标具有相同的生成命令和依赖文件
多规则目标
多个规则可以是同一个目标
Make在解析时,会将多个规则的依赖文件合并
伪目标
并不是一个真正的文件名,可以看做是一个标签
无依赖,相比一般文件不会去重新生成、执行
伪目标,可以无条件执行

目标依赖:

文件时间戳
根据时间戳来判断目标依赖文件是否更新
所有文件编译过,则对所有文件编译,生成可执行程序
在上次make之后修改过的C文件,会被重新编译
**在上次make之后修改过的头文件,依赖此头文件的会被重新编译
自动产生依赖**
Gcc –M命令生成该文件要依赖的文件
隐式规则

当有大量c文件时候用这个命令直接把.c文件编译为.o文件:

%.o:%.c    $(CC): -o $@ -c $^

模式匹配
此时并不能输出正确的当前地址, 因为cd和pwd同时运行 :

all:    cd     pwd

当按下面写后,就能够直接依次运行,显示根目录:

all:    cd /;\    pwd
原创粉丝点击