makefile静态模式
来源:互联网 发布:西门子plm软件下载 编辑:程序博客网 时间:2024/06/04 17:51
静态模式规则的基本语法:TARGETS ...: TARGET-PATTERN: PREREQ-PATTERNS ...COMMANDS...“ TAGETS”列出了此规则的一系列目标文件。像普通规则的目标一样可以包含通配符。“TAGET-PATTERN”和“ PREREQ-PATTERNS”说明了如何为每一个目标文件生成依赖文件。从目标模式( TAGET-PATTERN)的目标名字中抽取一部分字符串(称为“茎”)。使用“茎”替代依赖模式( PREREQ-PATTERNS)中的相应部分来产生对应目标的依赖文件。首先在目标模式和依赖模式中,一般需要包含模式字符“%”。在目标模式( TAGET-PATTERN)中“%”可以匹配目标文件的任何部分,模式字符“%”匹配的部分就是“茎”。目标文件和目标模式的其余部分必须精确的匹配。看一个例子:目标“foo.o”符合模式“%.o”,其“茎”为“foo”。而目标“foo.c”和“foo.out”就不符合此目标模式。每一个目标的依赖文件是使用此目标的“茎”代替依赖模式( PREREQ-PATTERNS)中的模式字符“%”而得到。例如:上边的例子中依赖模式( PREREQ-PATTERNS)为“%.c”,那么使用“茎”“foo”替代依赖模式中的“%”得到的依赖文件就是“foo.c”。需要明确的一点是:在模式规则的依赖列表中使用不包含模式字符“%”也是合法的。代表这个文件是所有目标的依赖文件。我们来看一个例子,它根据相应的.c 文件来编译生成“foo.o”和“bar.o”文件:objects = foo.o bar.oall: $(objects)$(objects): %.o: %.c$(CC) -c $(CFLAGS) $< -o $@例子中,规则描述了所有的.o文件的依赖文件为对应的.c文件,对于目标“foo.o”,取其茎“foo”替代对应的依赖模式“%.c”中的模式字符“%”之后可得到目标的依赖文件“foo.c”。这就是目标“foo.o”的依赖关系“foo.o: foo.c”在使用静态模式规则时,指定的目标必须和目标模式相匹配,否则在执行make时将会得到一个错误提示。如果存在一个文件列表,其中一部分符合某一种模式而另外一部分符合另外一种模式,这种情况下我们可以使用“filter”函数(可参考 第七章 make的内嵌函数)来对这个文件列表进行分类,在分类之后对确定的某一类使用模式规则。例如:files = foo.elc bar.o lose.o$(filter %.o,$(files)): %.o: %.c$(CC) -c $(CFLAGS) $< -o $@$(filter %.elc,$(files)): %.elc: %.elemacs -f batch-byte-compile $<其中; $(filter %.o,$(files))的结果为“bar.o lose.o”。“filter”函数过滤不符合“%.o”模式的文件名返回所有符合此模式的文件列表。第一条静态模式规则描述了这些目标文件是通过编译对应的.c 源文件来重建的。同样第二条规则也是使用这种方式。
阅读全文
0 0
- makefile: 静态模式
- Makefile的静态模式
- MAKEFILE--静态模式
- Makefile中的静态模式
- Makefile静态模式
- Makefile静态模式
- Makefile 静态模式
- makefile静态模式
- 关于Makefile静态模式
- makefile 推荐使用静态模式
- makefile之静态模式 (转载)
- makefile 多目标 静态模式 自动生成依赖性
- makefile详解 多目标 静态模式 十三
- Linux之Makefile(静态模式)
- 静态模式makefile中$(cobjs): $(obj)/%.o: $(src)/%.c
- 静态模式makefile中$(cobjs): $(obj)/%.o: $(src)/%.c
- 静态库 makefile
- makefile 静态库
- c#除掉字符串最后一个字符几种方法
- 如何在软件中实现多camera模组的兼容
- SQL SERVER ON LINUX安装和使用
- Shiro 的Permissions
- python print的简单用法
- makefile静态模式
- python数据结构之希尔排序
- iOS GCD定时器的使用
- springboot项目修改之后不需要重启的方法
- (四)spring cloud云服务架构
- 使用tf-slim的inception_resnet_v2预训练模型进行图像分类
- javascript -- 密码强度的验证
- linux 基础
- jquery each函数参数传递的问题