makefile的规则
2011-07-19 19:53
162 查看
1.makefile必须中的命令必须以tab键开头
规则告诉make两件事,文件的依赖关系和如何生成目标文件
一般来说,make会以unix的标准shell,也就是/bin/sh来执行命令
通配符的使用:
波浪号("~")字符在文件名中也有比较特殊的用途,如果是"~/test",这就表示当前用户的$HOME目录下的test目录.而"~hchen/test"则表示用户hchen的宿主目录下的test目录.(这些都是unix下的小知识了,make也会支持)而在windows下,用户是没有宿主目录,那么波浪号所指的目录则根据环境变量"HOME"而定.
如果我们的文件名中有通配符,如"*",那么可以用转义字符"\",如"\*"来表示真实的"*"字符,而不是任意长度的字符串.
makefile文件中的特殊变量"VPATH"就是完成这个功能的,如果没有指明这个变量,make只会在当前的目录中去找寻依赖文件和目标文件.如果定义了这个变量,那么,make就会在当前目录找不到的情况下,到指定的目录中去找寻文件了.
VPATH = src:../headers
上面的定义指定两个目录,"src"和"../header",make会按照这个循序进行搜索.目录由冒号分隔.(当然,当前目录永远是最高优先搜索的地方)
另一个设置文件搜索路径的方法是使用make的"vpath"关键之(注意,它是全小写的),这不是变量,这是一个make关键字,这和上面提到的那个VPATH变量很类似,但是它更为灵活.它可以指定不同的文件在不同的搜索目录中.这是一个很灵活的功能.它的使用方法有三种:
1. vpath <pattern>; <directories>;
为符合模式<pattern>;的文件指定搜索目录<directories>;.
2.vpath <pattern>;
清除符合模式<pattern>;的文件搜索目录.
3.vpath
清除所有已被设置好了的文件搜索目录
vpath使用的方法中的<pathern>;需要包含"%"
规则告诉make两件事,文件的依赖关系和如何生成目标文件
一般来说,make会以unix的标准shell,也就是/bin/sh来执行命令
通配符的使用:
波浪号("~")字符在文件名中也有比较特殊的用途,如果是"~/test",这就表示当前用户的$HOME目录下的test目录.而"~hchen/test"则表示用户hchen的宿主目录下的test目录.(这些都是unix下的小知识了,make也会支持)而在windows下,用户是没有宿主目录,那么波浪号所指的目录则根据环境变量"HOME"而定.
如果我们的文件名中有通配符,如"*",那么可以用转义字符"\",如"\*"来表示真实的"*"字符,而不是任意长度的字符串.
makefile文件中的特殊变量"VPATH"就是完成这个功能的,如果没有指明这个变量,make只会在当前的目录中去找寻依赖文件和目标文件.如果定义了这个变量,那么,make就会在当前目录找不到的情况下,到指定的目录中去找寻文件了.
VPATH = src:../headers
上面的定义指定两个目录,"src"和"../header",make会按照这个循序进行搜索.目录由冒号分隔.(当然,当前目录永远是最高优先搜索的地方)
另一个设置文件搜索路径的方法是使用make的"vpath"关键之(注意,它是全小写的),这不是变量,这是一个make关键字,这和上面提到的那个VPATH变量很类似,但是它更为灵活.它可以指定不同的文件在不同的搜索目录中.这是一个很灵活的功能.它的使用方法有三种:
1. vpath <pattern>; <directories>;
为符合模式<pattern>;的文件指定搜索目录<directories>;.
2.vpath <pattern>;
清除符合模式<pattern>;的文件搜索目录.
3.vpath
清除所有已被设置好了的文件搜索目录
vpath使用的方法中的<pathern>;需要包含"%"
相关文章推荐
- makefile示例及编写规则
- 快速编写“专家级”makefile(1.从最简单的Makefile中了解规则)
- 跟我一起写Makefile:书写规则
- 跟我一起写makefile 之 书写规则
- 一、Makefile的规则
- 两个Makefile规则
- make内核提示:Makefile: *** 混合的隐含和普通规则。 停止。
- makefile的规则与模板
- Makefile规则详解
- makefile超级详细规则
- Makefile中的双冒号规则
- 学习日记:如何写Makefile(二)——规则篇(上)
- makefile模式规则
- makefile(三):隐含规则
- Makefile 没有规则创建目标“main.o”需要的目标“main.c”
- 跟我一起写Makefile:隐含规则
- Makefile文件编写规则
- Makefile笔记二【函数和make的规则参数】
- 一步一步学写makefile (三) - 隐规则
- 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序