函数简介:

1、wildcard : 扩展通配符
2、notdir :去除路径
3、patsubst :替换通配符

实例:

建立一个 test 目录,在测试目录下建立一个名为 sub 的子目录

$ mkdir test
$ cd test
$ mkdir sub

在 test 下,建立 a.c 和 b.c 两个文件,在 sub 目录下,建立 sa.c 和 sb.c 两个文件

写出一个简单的 Makefile

src = $(wildcard *.c ./sub/*.c)
dir = $(notdir $(src))
obj = $(patsubst %.c,%.o,$(dir) ) all:
@echo $(src)
@echo $(dir)
@echo $(obj)
@echo "end"

执行结果分析:

第一行输出:
a.c b.c ./sub/sa.c ./sub/sb.c wildcard 把指定目录 ./ 和 ./sub/ 下的所有后缀是 c 的文件全部展开。 第二行输出:
a.c b.c sa.c sb.c
notdir 把展开的文件去除掉路径信息。 第三行输出:
a.o b.o sa.o sb.o
在 $(patsubst %.c, %.o, $(dir)) 中,patsubst 把 $(dir) 中的变量符合后缀是 .c 的全部替换成 .o。
或者可以使用
obj = $(dir:%.c=%.o)
效果也是一样的。 这里用到 makefile 里的替换引用规则,即用用户指定的变量替换另一个变量。
它的标准格式是
$(var:a=b) 或 ${var:a=b}
它的含义是把变量 var 中的每一个值结尾用 b 替换掉 a

参考自:blog.csdn.net/srw11/article/details/7516712

最新文章

  1. Vuforia结合Skyshop: Image-Based Lighting Tools & Shaders插件实现真实的光照效果
  2. lintcode 滑动窗口的最大值(双端队列)
  3. Hibernate之创建命名策略
  4. Test4J与Jtester单元测试常用注解比较
  5. hdu 1513 && 1159 poj Palindrome (dp, 滚动数组, LCS)
  6. MyEclipse中文注释乱码解决
  7. 基于TCP协议的服务器(单线程)
  8. 【Linux】鸟哥的Linux私房菜基础学习篇整理(二)
  9. Java 设计模式 -- 示例指南
  10. Jquery+php 动态web表单增删改查
  11. ReentrantReadWriteLock 读写锁解析
  12. springcloud-3:required a bean of type 'com.netflix.discovery.DiscoveryClient' that could not be found.
  13. GPG(GnuPG)入门
  14. SV通过DPI调用C
  15. 统计apk或jar中方法数量
  16. 模式识别之knn---KNN(k-nearest neighbor algorithm)--从原理到实现
  17. python,如何获取字符串中的子字符串,部分字符串
  18. Backing Up and Restoring HBase Data
  19. LeetCode 队列与BFS--岛屿的数量
  20. KL散度(Kullback–Leibler divergence)

热门文章

  1. 排序算法(sorting algorithm)之 插入排序(insertion sort)
  2. submit与execute区别
  3. android-读取MediaProvider
  4. Openvswtich 学习笔记
  5. Jenkins的初级应用(2)-Invoke Phing targets
  6. Html/CSS前端如何实现文字边框阴影
  7. Java实现链表的常见操作算法
  8. 卷积神经网络CNN的原理(三)---代码解析
  9. SpringBoot2.1整合finereport10(帆软报表)
  10. java多线程(1)---线程创建、start、run