- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
项目管理Makefile
GNUMake在Linux环境下使用GNU的make工具能够比较容易的构建一个属于自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。make是一个命令工具,它解释Makefile中的指令。在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。??
Makefile文件Make程序需要Makefile文件来告诉它做什么,Makefile文件是make读入的唯一的配置文件。当使用make工具进行编译时,工程中以下几种文件在执行make时将会被编译:所有的源文件没有被编译过,则对各个C源文件进行编译并进行链接,生成最后的可执行程序;每一个在上次执行make之后修改过的C源代码文件在本次执行make时将会被重新编译;头文件在上一次执行make之后被修改。则所有包含此头文件的C源文件在本次执行make时将会被重新编译。?
Edit项目工程文件
Makefile的组成Makefile里主要包含了五种类型的语句: 显式规则、隐式规则、变量定义、文件指示、注释显式规则显式规则说明了如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令隐式规则由于make有自动推导的功能,所以隐式的规则可以让程序员比较简略地书写Makefile,这是由make所支持,例如,makefile发现.o文件,程序就会自动去找.c文件,并编译成.o文件。?
Makefile的组成变量定义在Makefile中可定义一系列的变量,变量一般都是字符串,当Makefile被执行时,其中的变量都会被扩展到相应的引用位置上文件指示包括在一个Makefile中引用另一个Makefile、根据某些情况指定执行Makefile中的有效部分、定义一个多行的命令注释Makefile注释使用#,若Makefile需要用到“#”,则需要做转义“\#”。?
Makefile的规则(命令)规则解释如何编译文件,make根据依赖关系执行产生或更新目标;规则也说明如何和何时执行动作。有的规则看起来很复杂,但都符合下述模式。target:depend command1
Makefile的规则(命令)target是一个目标文件,可以是可执行文件或.o文件,也可以是执行动作。depend目标的依赖,也就是目标所依赖的文件。如果其中的某个文件要比目标文件要新,那么,目标就被认为是“过时的”,被认为是需要重生成的。command是make执行动作,一个目标依赖关系中可以包含多个命令,但是每个command不能是空格或者其它的字符,只可以一个制表符Tab键。注:若target缺少depend,那么command会直接被执行。
Makefile的规则(命令)当执行make的时候,make程序从当前目录读入makefile开始处理第一个的规则,称作缺省目标。上述的makefile中,缺省目标是all。在执行make的时候,也可以指定目标执行,如makeclean,那么make会直接读入执行目标clean,跳过all。若执行makeall,与make功能相同。
Makefile自动检测更新工程若干个源文件中,某一个文件发生了改变,我们希望只重新编译被修改的那一个文件,其它的文件不重新编译。make在执行时,会确认所有目标(target)是否都是必威体育精装版的,若目标的某一个依赖depend的时间比target新,那么make会重新根据依赖关系来执行相应的命令。
Makefile自动检测更新
Makefile隐式规则由于make有自动推导的功能,所以隐式的规则可以让程序员比较简略地书写Makefile。make在解释Makefile时,若目标是.o文件,那么他会自动的去寻找相应的.c文件,并隐式的进行编译。
Makefile的变量变量是在Makefile中定义的名字,用来代替一个文本字符串,该文本字符串称为该变量的值,这些值代替目标、依赖、命令以及Makefile文件中的其他部分。Makefile中变量和函数的展开,是在make读取makefile文件时进行的。变量可以用来代表一个文件名列表、编译选项列表、程序运行的选项参数列表、有哪些信誉好的足球投注网站源文件的目录列表、编译输出的目录列表变量名是不包括“:”、“#”、“=”、前置空白和尾空白的任何字符串。变量名是大小写敏感的。
Makefile的变量替换在Makefile中通常指定需要编译的.c文件,我们可以将多个.c文件名保存在变量SRCS中,再定义另一个变量OBJS使其保存.o文件名。可以直接使用变量的替换方式,将SRCS中的.c字符串替换成.o,赋值OBJS变量。其格式为:foo=$(var:a=b),将var变量中的a替换成b,并返回
您可能关注的文档
- 嵌入式Linux开发实践教程(第2版)课件:认识文件系统.pptx
- 嵌入式Linux开发实践教程(第2版)课件:使用嵌入式Linux常用开发工具.pptx
- 嵌入式Linux开发实践教程(第2版)课件:体验Linux系统.pptx
- 嵌入式Linux开发实践教程(第2版)课件:网络管理 .ppt
- 嵌入式Linux开发实践教程(第2版)课件:网络管理.ppt
- 嵌入式Linux开发实践教程(第2版)课件:文件IO编程.pptx
- 嵌入式Linux开发实践教程(第2版)课件:文件内容操作命令.ppt
- 嵌入式Linux开发实践教程(第2版)课件:移植BootLoad、内核、文件系统.pptx
- 嵌入式Linux开发实践教程(第2版)课件:用户和文件权限.ppt
- 嵌入式Linux开发实践教程(第2版)课件:用户和文件权限.pptx
- 2025年春季新人教九年级下册化学整册教学课件.pptx
- 2025年春新版苏教版数学一年级下册整册课件.pptx
- 2025年春季新人教版八年级下册物理整册教学课件.pptx
- 2025年春季新西师大版数学一年级下册整册课件.pptx
- 2025年春季新人教PEP版英语三年级下册整册课件.pptx
- 2025年春新版北师大版数学一年级下册整册课件.pptx
- 2025年春季新苏教版一年级下册数学整册教学课件.pptx
- 2025年春新版苏教版一年级下册数学整册教学课件.pptx
- 2025年春新版人教版数学一年级下册整册教学课件.pptx
- 2025年春新版人教PEP版英语三年级下册整册课件 (2).pptx
文档评论(0)