Makefile 使用总结

Makefile 使用总结

ID:42614983

大小:56.36 KB

页数:28页

时间:2019-09-18

Makefile 使用总结_第1页
Makefile 使用总结_第2页
Makefile 使用总结_第3页
Makefile 使用总结_第4页
Makefile 使用总结_第5页
资源描述:

《Makefile 使用总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Makefile使用总结1.Makefile简介Makefile是和make命令一起配合使用的.很多大型项目的编译都是通过Makefile来组织的,如果没有Makefile,那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强,不仅可以用来编译项目,还可以用来组织我们平时的一些日常操作.这个需要大家发挥自己的想象力. 本篇博客是基于 {精华}跟我一起写Makefile 而整理的,有些删减,追加了一些示例.非常感谢gunguymadman_cu提供如此详尽的Makefile介绍,这正是我一直

2、寻找的Makefile中文文档. 1.1Makefile主要的5个部分(显示规则,隐晦规则,变量定义,文件指示,注释)Makefile基本格式如下:target...:prerequisites...command......其中,·target       -目标文件,可以是ObjectFile,也可以是可执行文件·prerequisites-生成target所需要的文件或者目标·command      -make需要执行的命令(任意的shell命令),Makefile中的命令必须以[tab]开头 1.显示规则::说明如何生

3、成一个或多个目标文件(包括生成的文件,文件的依赖文件,生成的命令)2.隐晦规则::make的自动推导功能所执行的规则3.变量定义::Makefile中定义的变量4.文件指示::Makefile中引用其他Makefile;指定Makefile中有效部分;定义一个多行命令5.注释    ::Makefile只有行注释"#",如果要使用或者输出"#"字符,需要进行转义,"#" 1.2GNUmake的工作方式1.读入主Makefile(主Makefile中可以引用其他Makefile)2.读入被include的其他Makefile3.

4、初始化文件中的变量4.推导隐晦规则,并分析所有规则5.为所有的目标文件创建依赖关系链6.根据依赖关系,决定哪些目标要重新生成7.执行生成命令 2.Makefile初级语法2.1Makefile规则2.1.1规则语法规则主要有2部分:依赖关系和生成目标的方法.语法有以下2种:target...:prerequisites...command...或者target...:prerequisites;commandcommand...*注* command太长,可以用""作为换行符 2.1.2规则中的通配符·*    ::表示任意一

5、个或多个字符·?    ::表示任意一个字符·[...]::ex.[abcd]表示a,b,c,d中任意一个字符,[^abcd]表示除a,b,c,d以外的字符,[0-9]表示0~9中任意一个数字·~    ::表示用户的home目录 2.1.3路径搜索当一个Makefile中涉及到大量源文件时(这些源文件和Makefile极有可能不在同一个目录中),这时,最好将源文件的路径明确在Makefile中,便于编译时查找.Makefile中有个特殊的变量 VPATH 就是完成这个功能的.指定了 VPATH 之后,如果当前目录中没有找到相应

6、文件或依赖的文件,Makefile回到 VPATH 指定的路径中再去查找..VPATH 使用方法:·vpath           ::当前目录中找不到文件时,就从中搜索·vpath ::符合格式的文件,就从中搜索·vpath               ::清除符合格式的文件搜索路径·vpath                         ::清除所

7、有已经设置好的文件路径 #示例1-当前目录中找不到文件时,按顺序从src目录../parent-dir目录中查找文件VPATHsrc:../parent-dir#示例2-.h结尾的文件都从./header目录中查找VPATH%.h./header#示例3-清除示例2中设置的规则VPATH%.h#示例4-清除所有VPATH的设置VPATH 2.2Makefile中的变量2.2.1变量定义(=or:=)OBJS=programA.oprogramB.oOBJS-ADD=$(OBJS)programC.o#或者OBJS:=progra

8、mA.oprogramB.oOBJS-ADD:=$(OBJS)programC.o其中=和:=的区别在于,:=只能使用前面定义好的变量,=可以使用后面定义的变量测试=#Makefile内容OBJS2=$(OBJS1)programC.oOBJS1=program

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

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

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