Makefile中部分函数的使用
foreach
一、作用
循环处理文件列表。
二、格式
$(foreach var text commond)
var
:局部变量
text
:文件列表,空格隔开,每一次取一个值赋值为变量var
commond
:对var变量进行操作(一般会使用var变量,不然没意义),每次操作结果都会以空格隔开,最后返回空格隔开的列表。
wildcard
功能是展开成一列所有符合由其参数描述的文 件名,文件间以空格间隔。你可以像下面所示使用这个命令:
SOURCES= $(wildcard *.c)
这行会产生一个所有以 .c
结尾的文件的列表,然后存入变量 SOURCES
里。当然你不需要一定要把结果存入一个变量。
notdir
把展开的文件的路径去掉,只显示文件名而不包含其路径信息,例如:
FILES =(notdir (SOURCES))
这行的作用是把上面以 .c
结尾的文件的文件列表中附带的路径去掉,只显示符合条件的文件名。
patsubst
( patten substitude, 匹配替换的缩写)函数。它需要3个参数:第一个是一个需要匹配的式样,第二个表示用什么来替换它,第三个是一个需要被处理的由空格分隔的字列。例如,处理那个经过上面定义后的变量,
OBJS = (patsubst %.c,%.o,(SOURCES))
这行将处理所有在 SOURCES
列个中的字(一列文件名),如果它的 结尾是 .c
,就用 .o
把 .c
取代。注意这里的 %
符号将匹配一个或多个字符,而它每次所匹配的字串叫做一个‘柄’(stem) 。在第二个参数里, % 被解读成用第一参数所匹配的那个柄。
参考文献
- Makefile中foreach函数使用方法:https://blog.csdn.net/yanlaifan/article/details/71402771
- Makefile中wildcard、notdir、patsubst函数的用法:https://blog.csdn.net/zqj6893/article/details/9066225
- Makefile中的wildcard用法:Makefile中的wildcard用法:https://blog.csdn.net/liangkaiming/article/details/6267357
--------------------- Author: Frytea Title: Makefile中部分函数的使用 Link: https://blog.frytea.com/archives/466/ Copyright: This work by TL-Song is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
- Hibernate HQL注入攻击入门
- 高效开源的网络扫描框架NINJA-PingU
- 对List.Sort的简单研究
- 使用Apache API监控Uber的实时数据,第3篇:使用Vert.x的实时仪表板
- 走进科学:我是如何“黑了”星级酒店的
- OpenSSL空指针引用do_ssl3_write
- 针对近期“博全球眼球的OAuth漏洞”的分析与防范建议
- 黑掉美国(英国、澳大利亚、法国等)的交通控制系统
- Android 自定义标签 ViewLayout
- Identity Service - 解析微软微服务架构eShopOnContainers(二)
- 机器学习之随机森林
- Catalog Service - 解析微软微服务架构eShopOnContainers(三)
- EventBus In eShop -- 解析微软微服务架构Demo(四)
- Health Check in eShop -- 解析微软微服务架构Demo(五)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法