如果将工作目录下所有的.o 文件删除,重新执行 make 将会得到一个类似于没有创建*.o 文件的规则 的错误提示。这当然不是我们所期望的结果(可能在出现这个错误时会令你感到万分迷惑!)。为了达到我们的初衷,在对变量进行定义的时需要使用一些高级的技巧,包括使用wildcard函数(变量定义为objects=$(wildcard *.o))和实现字符串的置换。如何实现字符串的置换,后续将进行详细地讨论。

函数wildcard

之前提到过,在规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数wildcard,它的用法是:$(wildcard PATTERN...)

在 Makefile 中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符的展开和上一小节匹配通配符的区别。

一般我们可以使用$(wildcard *.c)来获取工作目录下的所有的.c 文件列表。

复杂一些用法;可以使用$(patsubst %.c,%.o,$(wildcard *.c)),首先使用wildcard
函数获取工作目录下的.c文件列表;之后将列表中所有文件名的后缀.c 替换为.o。这样
我们就可以得到在当前目录可生成的.o 文件列表。

3.wildcard相关推荐

  1. 浅显易懂 Makefile 入门 (06)— 文件名操作函数(dir、notdir、suffix、basename、addsuffix、addperfix、join、wildcard)

    编写 Makefile 的时候,很多情况下需要对文件名进行操作.例如获取文件的路径,去除文件的路径,取出文件前缀或后缀等等. 注意:下面的每个函数的参数字符串都会被当作或是一个系列的文件名来看待. 1 ...

  2. burp 调试_Burp插件分享及编译简学Wildcard+

    点击上方"蓝字"关注我们了解更多精彩0x00 Prefaceburpsuite作为本菜日常测试工具中的主角,他被我添加了很多的扩展插件,结果当然就是标签栏超胖.   作为一个追求美 ...

  3. ACL中的wildcard mask

    ACL中wildcard mask的使用 在路由器里我们经常使用access-list来做些地址过滤,达到某些安全策略的目的,一般常用的方法是对某个地址段进行permit或者deny,例如: acce ...

  4. 通配符(WildCard)的使用

    一.关于WildCard:一个web应用,有成千上万个action声明,可以利用struts2提供的映射机制把多个彼此相似的映射关系简化成一个映射关系,即通配符. 1.新建类 ActionWildCa ...

  5. 泛域名Wildcard Domain

    泛域名Wildcard Domain 泛域名Wildcard Domain是一种特殊的域名形式.它使用星号作为域名的一级.例如,*.baidu.com就是使用星号作为域名的二级部分.在域名解析中,一个 ...

  6. [LeetCode] Wildcard Matching 题解

    6. Wildcard Matching 题目 Implement wildcard pattern matching with support for '?' and '*'. '?' Matche ...

  7. [LintCode] Wildcard Matching

    Wildcard Matching Implement wildcard pattern matching with support for '?'and '*'. '?' Matches any s ...

  8. Elasticsearch全文检索对比:match、match_phrase、wildcard

    文章目录 match match_phrase wildcard match 根据定义的分词器(默认standard)对搜索词进行拆分,根据拆分结果逐个进行匹配.特点是可以查出大量可能相关联的数据,但 ...

  9. LeetCode44 Wildcard Matching

    题目: Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single charact ...

  10. Linux wildcard

    Linux中的通配符: 需要注意的是正则表达式与通配符完全是两个东西.wildcard代表的是bash操作接口的一个功能,而正则表达式是一种字符串处理的方法. 例如,'?',在通配符中表示一个字符,在 ...

最新文章

  1. python acm 素数个数_湘潭大学OJ-1098求区间内素数个数问题
  2. php 多进程设置,php多进程操作的三个实例
  3. php $表达式,Notepad++
  4. P4127 [AHOI2009]同类分布(数位dp)
  5. Facobook开源视觉问答VQA框架:Pythia
  6. html背景只向x轴扩散,有趣的css—简单的下雨效果2.0版
  7. 哪些手机搭载鸿蒙,鸿蒙2.0搭载手机吗-有什么功能
  8. HTML meta 标签 和 http-equiv
  9. python虚拟机 基于寄存器_基于栈虚拟机和基于寄存器虚拟机的比较
  10. Atlassian JIRA 插件开发之二 安装和创建项目
  11. 对于集成SP3后后不能激活的解释
  12. securecrt登录linux下载文件,Linux使用SecureCRT上传和下载文件教程
  13. SmartWx微信公众号管理系统源码v2.0
  14. Python常见问题与解决方案
  15. Embedded Coder 快速入门
  16. fastposter v2.7.0 发布 电商海报编辑器
  17. linux中su 与su-的区别
  18. 提取文本中的金额,提取货币,Python实现与在线使用
  19. linux重装出现cannot load file 5555h,在安装系统出现error cannot load file code 5555h 的解决办法...
  20. CMOS设置不当引起的故障排除

热门文章

  1. CNAS认证和CMA认证是国内两种不同类型的权威认证
  2. aligned_alloc
  3. 到底什么是QPS、TPS、RT、PV、UV、IV、VV、IP、系统吞吐量?
  4. 多因子模型的前世今生
  5. xmos固件u8_XMOS USB数字界面 模块 XU208 U8升级版CPL
  6. 天猫总裁靖捷详解新零售:传统商圈平均增长超50%
  7. [terry笔记]Python字符串
  8. Using GCC to produce readable assembly? - Stack Overflow
  9. NCRE考试感想 三级信息安全(下)
  10. 英飞凌TC397移植FreeRTOS