Make及makefile文件的编写培训课程.ppt

Make及makefile文件的编写培训课程.ppt

ID:51260645

大小:539.00 KB

页数:86页

时间:2020-03-20

Make及makefile文件的编写培训课程.ppt_第1页
Make及makefile文件的编写培训课程.ppt_第2页
Make及makefile文件的编写培训课程.ppt_第3页
Make及makefile文件的编写培训课程.ppt_第4页
Make及makefile文件的编写培训课程.ppt_第5页
资源描述:

《Make及makefile文件的编写培训课程.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、第5章Make及makefile文件的编写1.概述2.Makefile3.Makefile的规则4.规则的命令5.Makefile中的变量6.执行makeLinux系统下的文件编译程序的编译和链接源程序(.c)编译(compile)链接(linker)形成目标文件形成可执行程序(1)预编译(2)汇编阶段什么是make?Make是大型程序维护工具Make工作时,需要名字为“makefile”的makefile文件。根据依赖关系自动决定项目的那些部分需要重新编译。基本原理:如果某个源程序文件被修改,那么依赖这个源程序文件的所有目标文件,都需要重新编译。MakefileRuleRule的格

2、式为:target…:prerequisites…command……Target依赖prerequisites的目标Prerequisites被依赖的源程序,例如c文件或h文件Command需要执行的命令当prerequisites任何一个文件的时戳新于target的时戳时,就执行command。makefile规则介绍一个简单的Makefile描述规则组成:TARGET...:PREREQUISITES...COMMAND...--target:规则的目标。--通常是程序中间文件(.o)或者最后可执行文件名--目标也可以是一个make执行的动作的名称,如目标“clean”

3、,这样的目标是“伪目标--prerequisites:规则的依赖。--生成规则目标所需要的文件名列表。通常一个目标依赖于一个或者多个文件。--command:规则的命令行--是make程序所有执行的动作(任意的shell命令或者可在shell下执行的程序)--一个规则可以有多个命令行,每一条命令占一行。注意:每一个命令行必须以[Tab]字符开始makefile文件在makefile(Makefile)文件中,采用自顶向下到的方法来说明依赖关系network:network.osubrs.o(1)gccnetwork.osubrs.o–onetwork(2)network.o:netw

4、ork.cnetdefs.h(3)gcc–cnetwork.c-onetwork.o(4)subrs.o:subrs.cnetdefs.h(5)gcc–csubrs.c.PHONYcleanclean:rm-r*.o(6)执行make在makefile(Makefile)文件所在的目录中,执行make命令语法:make[选项][宏定义][目标文件]Make的工作过程1.make在当前目录下找名字叫“Makefile”或“makefile”的文件2.如果找到,它会找文件中的第一个目标文件(target),比如找到“network”这个文件,并把这个文件作为最终的目标文件。3.如果net

5、work文件不存在,或是network所依赖的后面的.o文件的文件修改时间要比network这个文件新,那么,他就会执行后面所定义的命令来生成network这个文件。4.如果network所依赖的.o文件也存在,那么make会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件(使用源文件和.h文件)。(这有点像一个堆栈的过程)make时,哪些文件被重新编译1.所有的源文件没有被编译过,则对各个C源文件进行编译并进行链接,生成最后的可执行程序;2.每一个在上次执行make之后修改过的C源代码文件在本make时将会被重新编译;3.头文件在上一次执行make之后被

6、修改。则所有包含此头文件的C源文件在本次执行make时将会被重新编译。关于Makefile文件名默认的情况下,make命令会在当前目录下按顺序找寻文件名为“GNUmakefile”、“makefile”、“Makefile”的文件,找到了解释这个文件。也可以使用别的文件名来书写Makefile,这是执行Make命令时,需使用“-f”和“--file”参数。如:make-fMake.Linux或make--fileMake.AIX对“规则”的再认识在Makefile中“规则”就是描述在什么情况下、如何重建规则的目标文件,通常规则中包括了目标的依赖关系(目标的依赖文件)和重建目标的命令。

7、make执行重建目标的命令,来创建或者重建规则的目标(此目标文件也可以是触发这个规则的上一个规则中的依赖文件)。规则包含了目标和依赖的关系以及更新目标所要求的命令。一个简单的例子1.注释以#开头2.一个较长行可以使用反斜线()分解为多行,后不能有空格3.目标“clean”不是一个文件,它仅仅代表了执行一个动作的标识。Makefile中把那些没有任何依赖只有执行动作的目标称为“伪目标”在执行make时,它所指定的动作不会被执行。除非执行make时明确地指

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。