- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 make工程管理器 12-1
12.1 make工程管理器简介 12-1
12.1.1 了解make工程管理器 12-1
12.1.2 了解makefile文档 12-2
12.2 编写makefile 12-2
12.2.1 makefile的格式 12-2
12.2.2 makefile的五部分 12-3
12.2.2.1 伪目标 12-4
12.2.2.2 变量 12-4
12.2.2.3 隐式规则 12-7
12.2.2.4 模式规则 12-7
12.2.2.5 注释 12-8
12.3 命令行选项和参数 12-8
12.4 使用autoTools工具集 12-8
12.4.1 什么是autoTools 12-8
12.4.2 autoTools使用流程 12-9
12.4.3 使用make命令 12-12
12.5 小结 12-14
make工程管理器
课时安排:4节
课程目标:
本课程完成后,您将具备以下能力:
1、理解make工程管理器。
2、掌握makefile格式。
3、应用编写makefile文档。
4、应用autoTools生成makefile文档。
课程讲解:
在本章中同学们会了解有关make工程管理的介绍及使用,一步步学习写makefile文档,最后了解autoTools系列工具的功能和使用,掌握autoTools自动生成makefile文档的步骤。
12.1 make工程管理器简介
12.1.1 了解make工程管理器
所谓工程管理器是指管理工程的工具。假如我们面对是一个上百个文件的代码构成的项目,假如其中几个文件进行了修改,按照之前所学的gcc编译工具,就不得不把项目内所有的文件重新编译一遍,因为编译器并不知道哪些文件是最近更新的,但那些没有改动的源代码根本不需要重新编译,而只须把它们重新链接进去即可。所以,人们就希望有这样一款能够自动识别更新的文件代码并管理项目的软件,所以make工程管理器也就应运而生了。
make工程管理器是个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入makefile文件的内容来自动执行大量的编译工作。用户只需编写一次简单的编译语句就可以。这不仅提高了工作效率,而且便于管理。
除了最简单的小项目,make对于其他所有项目而言都是必要的。make可以通过把一些复杂而难记的命令行保存在makefile文件中来解决重新编译的复杂性,make还能减少重复编译所需要的时间,因为它很聪明,能够判断哪些文件被修改过,进而只重新编译程序被修改过的部分。
12.1.2 了解makefile文档
make是怎样完成这些神奇的工作呢?它是通过makefile文档做到的。makefile是一个文本形式的数据库文件,其中包含一些规则,它告诉make编译哪些文件、怎样编译以及在什么条件下去编译,甚至于进行更复杂的功能操作,因为makefile就像一个shell脚本一样。make在执行时就会找到makefile文件,会自动根据修改情况完成源文件对应.o文件的更新、库文件的更新和最终可执行程序的更新。对于不需要重建的文件,make什么也不做。
12.2 编写makefile
12.2.1 makefile的格式
既然make工程管理器的一切行为都依据makefile,所以编写好makefile是至关重要的。一个简单的makefile格式通常的格式是:
target… : dependency [dependency […] ]
COMMAND
COMMAND
[…]
1、target:目标体。即make最终需要创建的东西。另外,目标也可以是一个make执行的动作名称,如目标“clean”,可以称这样的目标是“伪目标”,在后面会讲到。
2、dependency:依赖体。依赖体通常是编译目标体要依赖的一个或多个其它文件。
3、command:命令。为了从指定的依赖体创建出目标体所需执行的shell命令。
一个规则可以有多个命令行,每一条命令占一行。注意:每一个命令的第一个字符必须是制表符【Tab】,如果使用空格会产生问题,make会在执行过程中显示Missing Separator(缺少分隔符)并停止。
target是需要创建的二进制文件或目标文件。dependency是在创建target时需要输入一个或多个文件的列表。命令序列是创建target文件所需要的步骤,如编译命令。此外,除非特别指定,否则make的工作目录就是当前目录。
实例12-1:
目标
文档评论(0)