你知道Makefile变量具体是怎样的?.doc

上传人:白大夫 文档编号:3381780 上传时间:2019-08-20 格式:DOC 页数:2 大小:15.50KB
返回 下载 相关 举报
你知道Makefile变量具体是怎样的?.doc_第1页
第1页 / 共2页
亲,该文档总共2页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《你知道Makefile变量具体是怎样的?.doc》由会员分享,可在线阅读,更多相关《你知道Makefile变量具体是怎样的?.doc(2页珍藏版)》请在三一文库上搜索。

1、你知道Makefile变量具体是怎样的?自定义变量=是最基本的赋值,会把整个makefile展开之后再决定是多少x=fooy=$(x)bar #y是asdbar,不是foobarx=asd:=是覆盖之前的值,和=不同,和赋值的位置有关x=fooy:=$(x)bar #y是foobarx=asd?=是如果没有被赋值过就赋予等号后面的值,赋过了就不管了+=是添加等号后面的值变量的使用和shell一样,makefile通过$(FLAGS)来读取变量FLAGS的值,对于$本身,使用$读取变量替换注意这两种替换的方式都得使用变量名,不能使用变量的内容,即不能写成诸如$($(VAR):o=a)的形式,其他

2、返回内容的函数也不行,均会导致替换的失败makefile中有两种变量替换,形如$(var:a=b)或者$var:a=b,是把var中以a结尾的变量替换为bOBJ=./obj/test.oOBJ2=$(OBJ:o=a)all:echo OBJ:$(OBJ)echo OBJ2:$(OBJ2)#$make allOBJ:./obj/test.oOBJ2:./obj/test.a使用模式匹配的方式表示替换内容OBJ=./obj/test.oOBJ2=$(OBJ:%.o=%.a)all:echo OBJ:$(OBJ)echo OBJ2:$(OBJ2)#$make allOBJ:./obj/test.oO

3、BJ2:./obj/test.a自动化变量?所有比目标新的依赖的集合,以空格分隔,通常用他们的值,即$?规则中的目标文件集,如果有多个目标,那么就是匹配于目标中模式定义的集合,通常用他们的值,即$%仅当目标是函数库文件中,表示规则中的目标成员名,如果不是,为空,通常用他们的值,即$%rsvpathvpath是一个指令,可以用来搜索文件,通常有三种用法:VPATH 为符合模式的文件指定搜索目录VPATH 清除符合模式的文件的搜索目录VPATH清除所有已被设置好了的文件搜索目录这里,需要包含%字符,eg:vpath %.h ./headers如果多条vpath语句中出现了重复的,则会按照先后顺序搜

4、索print: *.c#依赖关系的通配符会被自动展开,表示print目标依赖于所有的.c 文件object=*.c#变量中的通配符不会被展开object就是 “.c”需要使用wildcard来展开例子#Makefile文件CC:=gccCFLAGS:= -O2 -I ./includeTARGET:=linkstackOBJS:=linkstack.o linkstack_main.oHDRS:=linksude linkstack.h Makefile src linkstack.c linkstack_main.c2 directories, 4 files$makegcc -c ./sr

5、c/linkstack.c ./src/linkstack_main.c -O2 -I ./includegcc -O2 -I ./include linkstack.o linkstack_main.o -o linkstack$tree. include linkstack.h linkstack linkstack_main.o linkstack.o Makefile src linkstack.c linkstack_main.c2 directories, 7 files$make clean$tree. include linkstack.h Makefile src linkstack.c linkstack_main.c2 directories, 4 files

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1