make的简单使用个人整理篇
格式:
目标 〔属性。。。〕
分隔符 〔依赖文件〕 〔;命令菜单〕
{ < 制表符 > 命令菜单}
makefile 根据符号 tab 来辨认命令
make 命令的运行格式:
make 〔 option 〕 〔 macrodef 〕 〔 target 〕
make 将使用默认的 makefile 或 Makefile 作为配置文件
也可以指定配置文件,用参数- f
例如: make –f test1.mk
Option指出make的工作行为,make的具体选项有:
-c dir make在开始运行后的工作目录为指定目录
-e 不允许在makefile中队环境的宏赋值
-f filename 使用指定的文件作makefiel
-k 执行命令出错时,放弃改目标去维护其它目标
-n 按实际运行时的执行顺序现实命令,包括用@开头的命令,但不振的执行
-p -现实makefile中所有的宏定义,河内部规则
-r 忽略内部规则
-s 执行但不显示命令,常用来检查makefile的正确性
-S 执行make时 出错即退出 makefile phony
-t 修改每个目标文件的创建日期,但又不正的创建
-V 打印make的版本号
-x 将所有的宏定义输出的shell环境中
-i 忽略运行make 中的错误,而又不退出make
make 按规则中的依赖文件依次从左到右检查,除非依赖文件为源文件,否则 make 将递归方式检查该依赖文件的依赖文件。
可以用 touch 命令强行修改文件的修改时间
可以使用变量(宏)来缩减 makefile 的文件大小
定义: CC=gcc
引用: $(CC)
%o:%c
$(COMPILE) –o $@ $<
可以同时使用多个依赖文件匹配多个目标文件
例如:
io.o init.o:muprogram.h
配合上面的规则,执行命令,表示该目标文件还同时依赖于 muprogram.h 文件
可以使用特殊的目标文件( clean )
例如:
clean:
-rm $(OBJS)
make 不会自动执行 clean 目标, clean 也没有任何依赖文件
makefile 文件中的分隔符:
::表示目标文件将多次出现。使用“:”时, make 规定目标文件只能出现一次
: ^ 将指定的依赖文件和目标文件已有的依赖文件合并起来,作为新的依赖文件列表
:-清除原有的依赖文件,将新的依赖文件列表作为目标的文件列表
:!对每个更新过的依赖文件都执行一次命令菜单
: | 只在内部规则中使用???
Makefile 文件中的命令行属性:
默认情况下,系统执行每条命令,打印该命令,如果在运行命令时出错,就会退出 make
命令行属性的选项:
- 忽略该行的错误,继续执行下一命令
+ 强行执行该命令
@ 不显示命令行
makefile 文件中的目标文件属性:
格式 1 :
属性 1 属性 2 。。。:目标文件 1 目标文件 2 。。。
格式 2 :
目标文件 属性 1 属性 2 。。。:
常见的几种属性:
.IGNORE 忽略错误,继续执行
.SILENT 不现实目标文件下的命令行
.PRECIOUS 保留中间目标文件。默认情况下,退出 make 时,系统将自动删除临时的中间目标文件。
伪目标选项:
伪目标 就是程序执行的一些与目标文件本身没有直接关系的辅助性操作。
1. 自定义伪目标
要求系统中没有重名的文件
2. 内部伪目标
.ERROR: 依赖文件 1 。。。 当执行错误时,显示错误信息,并完成简单的错误处理
.INCLUDE: makefile 文件 1 。。。 当执行到该伪目标时,插入其他 makefile 文件的内容,并且执行该内容。
例如: .INCLUDE : make.mk
当其他 makefile 文件不在同一目录下,使用格式:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论