教案make基础介绍.pptVIP

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
教案make基础介绍

Make介绍 王旭峰 * Make是什么 是一种解释执行语言,有自己的语法规则,命令以及关键字 最初设计是为了维护C程序文件防止不必要的重新编译 用来构建和管理工程的工具 好处:自动化编译 * 工作原理 工作原理 通过比较目标文件和依赖文件的最后修改时间来决定哪些文件需要更新 依赖文件包括源文件以及文件中include的所有头文件 * Makefile命名 Make文件命名 不指定Makefile的情况下,make会在工作目录下按照“GNUmakefile”, “makefile”, “Makefile”的文件名顺序查找。 可以通过指定要执行的makefile文件 make -f your_makefile * 基本规则 基本规则 target ... : prerequisites ... tabCommand 1. target也就是目标,可能为如下三种情况, 1. 执行文件 2. 目标文件 3. 伪目标 2. Prerequisites,必要条件,要生成当前target所需要的文件或是需要完成的子target 3. Command 必须以Tab字符开始,make程序会将其交给系统的shell 程序去解释执行 * 伪目标 伪目标 Makefile中把没有任何依赖只有执行动作的目标称为“伪目标”(phony targets) 比如:clean。 clean : rm *.o *.a make默认把第一个目标认作default目标,clean一般都是放在文件的最后 通过.PHONY来声明一个伪目标 .PHONY: clean * 伪目标使用 伪目标使用 .PHONY: clean clean : -rm dir/*.o 说明: 通过“.PHONY”特殊目标将“ clean”目标声明为伪目标。防止当磁盘上存在一个名为“clean”文件时,“clean”所在规则的命令无法执行 在命令行之前使用“-”,意思是忽略命令“rm”的执行错误 * 强制目标 实现和伪目标相同的功能,如: clean: FORCE -rm $(objects) FORCE: 如果一个规则没有依赖、也没有命令,则make认为只要该规则运行,该目标就已被更新。意味着,以这种规则为依赖的目标,它们的命令将总被执行 * Makefile内容 一个完整的 Makefile中,包含了五种内容: 1. 显式规则 明确地给出目标文件、目标的依赖文件列表以及更新目标文件所需要的命令 2. 变量定义 就是使用一个字符串代表一段文本串 3. 隐含规则 make根据目标文件的命名而自动推导出来的规则 4. Makefile指示符 执行一定任务的命令,包括Include语句、条件语句等等。 5. 注释 “#”字符后的内容都被作为是注释内容处理 * 显式规则 明确给定的规则,如: libtest.a : file1.o file2.o $(AR) $(ARFLAGS) libtest.a file1.o file2.o main: main.o ld main.o –o main.o main.o: main.c gcc -c main.c -o main.o * 变量定义 变量的概念 变量的赋值 变量的作用域 自动化变量 * 变量的概念 基本特征 1. 变量名由不包括:、“#”、“=”、前置空白和尾空白的任何字符串组成(尽量由字母、数字和下划线组成) 2. 变量可以用来代表一个文件名列表、编译选项列表、程序运行的选项参数列表、搜索源文件的目录列表、编译输出的目录列表 3. 变量名是大小写敏感的 4. 内置变量,自动化变量,像”$”,”$@”,”$?”,”$*”等 * 变量的赋值 赋值的类型 递归调用型(‘=’)、静态(‘:=’)、追加(‘+=’)、条件(‘?=’) variable = deferred variable ?= deferred variable := immediate variable += deferred or immediate define variable deferred endef 对于附加操作符‘+=’,右边变量如果在前面使用(:=)定义为简单扩展变量则是立即变量,其它均为延时变量。 问题赋值 variable = $(variable) OTHER_VALUE

文档评论(0)

ranfand + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档