网站大量收购闲置独家精品文档,联系QQ:2885784924

8_Makefile的使用和编写.ppt

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

Makefile的使用和编写 Build Makefile 课程目标 Makefile的概念 Make的调用格式 Makefile的基本格式 Makefile的扩展话题 常见项目的Makefile格式 直接编译 遍历子目录 autoconf生成形 Makefile 产生的背景 一个软件项目通常包含多个源码文件.每个源代码的编译和可执行文件的链接都要书写大量的命令. 如Linux 下要大量调用gcc 来处理 如果用IDE开发环境,这编译和链接一般由IDE自动完成.但绝大部分Linux和开源项目并不使用IDE,而是使用gcc 之类命令行工具来编译 Linux 内核. 在一项目里, 代码通常都引用关系.因此需要指定谁先编译,谁后编译.甚至是更复杂的功能操作 Makefile 就为解决上述一系统问题而创造的.可以把Makefile 理解成是一种由make 程序进行解释的一种特殊脚本. Linux 几乎所有项目都是通过Makefile 方式编译的,如MySQL,Apache和操作系统本身,因此Linux 下开发必须掌握Makefile的编写和使用 Makefile与Shell脚本的异同 相同点: 都是文本文件格式的脚本. 都可以执行Shell命令 都可以定义变量,和条件控制语句.(使用格式上有差别) 不同点: 解释器不同,Shell脚本是由对应Shell程序解释.而Makefile是由make程序解释 格式不一样,Shell脚本以命令行为基本单位,而Makefile以规则为基本单位 Shell脚本只要有执行权限即可直接执行,Makefile必须要用make来显式调用才行,本身不需执行权限 Makefile相对Shell脚本的优点 在开发领域,Makefile还是有相当优势 Makefile具有自动推导,判断源码依赖关系的功能 Makefile有可以使用隐含规则来简化makefile的编写 但这样会带来makefile可阅读性下降 Make的调用 最常用的make调用形式.就是直接执行make 它会自动查找当前目录下的名称为Makefile或makefile的文件,并自动从名称为all的target开始执行 象其它GNU工具一样,make有一些命令参数,以便应用在一些特殊场所 如果makefile脚本名称不是缺省名称,则需要用-f参数来通知make make –f hello.mk 表示执行名称叫hello.mk makefile脚本 如果需要make不去查找当前目录,而是查找另外一个目录下的makefile,则使用-C 参数 make -C /home/hxy 表示去找查找 /home/hxy下的makefile 指编译特定部分 一个项目可能不同版本或不同部分,在makefile中以target表示 make可以通用在命令行直接写target名称,用于一个或多个target进行编译, make install make clean make target1 target2 规则(rule)概念 一个Makefile 可以看作是一系列规则的组合,一个规则也能称为一个目标(target) 规则的格式 目标名称是需要创建结果一个称呼.可以取任意标识名.一般与创建文件同名 依赖对象,表示创建这个目标之前,必须预先创建的其它目标,这里的对象可以是另一个规则的名称,也可是基本的文件名称 命令列表表示为了创建这一个目标,需要执行哪些Shell命令.可以是一行或多行Shell命令.每一行命令行的行首必须是一个跳格字符(即tab), 注意行首空格是无效,否则执行makefile报错 如果命令行过长,可用\分行,分行后的新行,无需使用tab打头 整个规则的可做如下解读.”为了创建这个目标,必须先创建依赖对象(或是依赖的对象必须存在),然后再调用命令行列表进行创建” 规则(rule)概念 在Makefile里,把源代码编译成目标代码一般是一个规则 把所有中间文件链接在一起也是一个规则 伪目标 一般的目标最终结果都是生成一个文件,但有一些目标可以不生成结果文件.只是为了调用命令或依赖对象.这称为伪目标(Phony target) make 内置一些常用的伪目标. all 缺省的目标入口,如果执行make命令行没有指定目标名称,all目标则会自动被调用. clean 清除项目生成的中间文件和最终成文件,如何清除需要开发者自行编写. install 项目如何安装, .具体动作要开发者自行编写 uninstall 项目如何卸载.具体动作要开发者自行编写 为了让make程序不至于产生误解,开发者可以用.PHONY关键字来声明伪目标,但这不是必须做的 .PHONY clean,install,all #表示三个都是伪目标 规则(rule)概

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档