MakeFile规则介绍、工作原理、如何编写讲述.doc

MakeFile规则介绍、工作原理、如何编写讲述.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MakeFile规则介绍、工作原理、如何编写讲述

目录 1 简介 3 1.1 准备工作 3 1.2 Makefile介绍 3 1.3 规则简介 4 1.4 make工作原理 4 1.5 使用变量 5 1.6 简化命令 5 1.7 另一种风格 6 1.8 清理 6 2 Makefile 7 2.1 makefile名字 7 2.2 包含 7 2.3 ‘MAKEFILE’变量 7 2.4 如何重新生成makefile 7 2.5 重载makefile 8 3 规则 8 3.1 例子 8 3.2 规则的语法 9 3.3 通配符 9 3.3.1 通配符的缺陷 9 3.3.2 wildcard函数 10 3.4 目录搜索 10 3.4.1 ‘VPATH’ 10 3.4.2 选择性搜索 11 3.4.3 使用自动变量 11 3.4.4 目录搜索和隐含规则 12 3.5 PHONY目标 12 3.6 FORCE目标 13 3.7 空目标 13 3.8 内建的特殊目标 13 3.9 一个规则多个目标 14 3.10 一个目标多条规则 14 3.11 静态模式规则 14 3.11.1 语法 15 3.11.2 静态模式规则和隐式规则 15 3.12 双冒号规则 16 3.13 自动生成依赖关系 16 4 编写命令 17 4.1 回显 17 4.2 执行 17 4.3 并行执行 17 4.4 错误 18 4.5 中断make 18 4.6 递归使用 18 4.6.1 ‘MAKE’变量 19 4.6.2 传递变量到子make 19 5 命令行参数 20 6 参考 23 6.1 指令 23 6.2 函数 24 6.3 自动变量 26 6.4 特殊变量 27 GNU Make使用 Make 程序最初设计是为了维护C程序文件防止不必要的重新编译。在使用命令行编译器的时候,修改了一个工程中的头文件,如何确保包含这个头文件的所有文件都得到编译?现在的版本生成是使用批处理程序,编译那些文件依赖于程序的维护者,在模块之间相互引用头文件的情况下,要将所有需要重新编译的文件找出来是一件痛苦的事情;在找到这些文件之后,修改批处理进行编译。实际上这些工作可以让make程序来自动完成,make工具对于维护一些具有相互依赖关系的文件特别有用,它对文件和命令的联系(在文件改变时调用来更新其它文件的程序)提供一套编码方法。Make工具的基本概念类似于Proglog语言,你告诉make需要做什么,提供一些规则,make来完成剩下的工作。 简介 make工作自动确定工程的哪部分需要重新编译,执行命令去编译它们。虽然make多用于C程序,然而只要提供命令行的编译器,你可以将其用于任何语言。实际上,make工具的应用范围不仅于编程,你可以描述任和一些文件改变需要自动更新另一些文件的任务来使用它。 准备工作 如果要使用make,你必须写一个叫做“makefile”的文件,这个文件描述工程中文件之间的关系,提供更新每个文件的命令。典型的工程是这样的:可执行文件靠目标文件来更新,目标文件靠编译源文件来更新。 Makefile写好之后,每次更改了源文件后,只要执行make就足够了,所有必要的重新编译将执行。Make程序利用makefile中的数据库和文件的最后修改时间来确定那个文件需要更新;对于需要更新的文件,make执行数据库中记录的命令。 可以提供命令行参数给make来控制那个文件需要重新编译。 Makefile介绍 Makefile文件告诉make做什么,多数情况是怎样编译和链接一个程序。 这里有一个简单的makefile,描述如何编译链接由8个C文件和3个头文件组成的一个编辑器: edit : main.o kbd.o command.o display.o \ insert.o serach.o files.o utils.o cc –o edit main.o kbd.o command.o display.o \ insert.o search.o files.o utils.o main.o : main.c defs.h cc –c main.c kdb.o : kbd.c defs.h command.h cc –c kbd.c command.o : command.c defs.h command.h cc -c command.c display.o : display.c defs.h buffer.h cc -c display.c insert.o : insert.c defs.h buffer.h cc -c insert.c search.o : search.c defs.h buffer.h cc -c search.c files.o : files.

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档