3.wildcard

news/2024/6/18 23:06:00 标签: 服务器, linux, centos

如果将工作目录下所有的.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 文件列表。


http://www.niftyadmin.cn/n/1816447.html

相关文章

C语言restrict关键字

关键字restrict只用于限定指针;该关键字用于告知编译器,所有修改该指针所指向内容的操作全部都是基于(base on)该指针的,即不存在其它进行修改操作的途径;这样的后果是帮助编译器进行更好的代码优化,生成更有效率的汇编…

_Generic示例

#define ADD(a,b) _Generic((a), \int:addI(a,b),\double:addF(a,b), \default:unsupport(a,b))int main(void) {ADD(1 , 2);ADD(1.1,2.2);return 0; }

python用什么编译器写-Python必学之编译器用哪个好?你用错了吧!

CPython 当我们从Python官方网站下载并安装好Python 3.x后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。 CPython是使用最广的Python解释器。教程…

关于Myeclipse报 Bad version number in .class file 错误原因

在用eclipsemyeclipse做DWR入门实例时,编译总是提示“Bad version number in .class file”,导致执行DWR总会提示错误,花了好大劲才知道原因是“Java Compile Level和指定编译的JRE两者间的版本不一致导致”按以下步骤修改eclipse设置即可恢复…

es6转es5_【webpack实践】集成babel,使用ES6写代码

许多低版本浏览器上不支持直接运行ES6的代码。如果需要向下兼容,使低版本浏览器支持运行我们的代码,我们需要集成babel(JS转码器)来将我们的ES6转换成ES5(绝大部分浏览器支持)的代码,在浏览器上运行首先准备两个ES6标准…

ubuntu中selenium+chrome截图时中文显示成方框问题的解决方法

原文链接 ubuntu中通过seleniumchrome打开浏览器网页截图时,中文部分如果显示为方框,这说明系统中缺少支持的中文字体。 解决方法: 1.下载任意一种中文字体,或者直接从windows系统字体文件夹(C:\Windows\Fonts)中选择一种&#…

JiaThis分享

<!DOCTYPE html> <html><head><meta charset"{CHARSET}"><meta name"viewport" content"widthdevice-width,minimum-scale1.0,maximum-scale1.0,user-scalableno"><title>这是测试</title></head&…

rgb fusion检测不到显卡_尝鲜光追,可以从这块显卡开始、铭瑄RTX2060Super电竞之心显卡 评测...

一、 前言英伟达今年的显卡产品线非常有意思&#xff0c;两条产品线并行销售&#xff0c;中低端的GTX16xx和中高端的RTX20xx。这两条显卡产品线出了在性能方面有高低之外&#xff0c;还在显卡的功能性方面有较大的区别&#xff0c;RTX20系列显卡支持光线追踪&#xff0c;而GTX1…