首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Makefile通配符问题

是指在Makefile中使用通配符进行文件匹配时遇到的一些问题和注意事项。

通配符是一种用于匹配文件名的特殊字符,常用的通配符有*?[]。在Makefile中,通配符可以用于指定目标文件、依赖文件或命令中的文件列表。

然而,使用通配符时需要注意以下几点:

  1. Makefile中的通配符与Shell中的通配符略有不同。在Makefile中,*通配符可以匹配任意字符序列(包括空字符),?通配符可以匹配任意单个字符,[]通配符可以匹配指定范围内的字符。但是,Makefile中的通配符不会自动展开路径,需要使用wildcard函数来展开路径。
  2. 通配符的展开是在Makefile解析阶段进行的,而不是在运行时。这意味着,如果文件列表在Makefile解析时不存在,通配符将不会展开,而是将其视为普通的字符串。
  3. 通配符展开的顺序是按照字母顺序进行的。这意味着,如果有多个文件与通配符匹配,它们的顺序可能与文件系统中的顺序不同。
  4. 通配符展开是针对当前目录进行的,不会递归地搜索子目录。如果需要匹配子目录中的文件,可以使用递归通配符**
  5. 通配符展开是基于文件系统的,与具体的编程语言无关。因此,通配符不会考虑隐藏文件、符号链接等特殊文件。

在使用通配符时,可以结合其他Makefile的内置函数和变量来实现更灵活的文件匹配和处理。例如,可以使用foreach函数遍历通配符匹配的文件列表,使用patsubst函数修改文件名的格式,使用$(wildcard)函数展开通配符等。

腾讯云提供了一系列与云计算相关的产品,包括云服务器、云数据库、云存储等。具体推荐的产品和产品介绍链接地址可以根据实际需求和情况进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

通配符通配符掩码

路由中的通配符 1.路由配置中的通配符   在路由器的配置中,经常出现通配符。和子网掩码一样,都是以“0”或“1”表示,不过与子网掩码所表示的意思却不一样。   ...子网掩码所表示的是IP的网络位和主机位,而通配符则表示与IP是否匹配。   通配符同样是32位,和IP地址一一对应,“0”位代表精确匹配,而“1“位代表不许匹配。...通配符掩码(wildcard-mask) 1.路由器使用的通配符掩码(或反掩码)与源或目标地址一起来分辨匹配的地址范围,它跟子网掩码刚好相反。...它像子网掩码告诉路由器IP地址的哪一位属于网络位一样,通配符掩码告诉路由器为了判断出匹配,它需要检查IP地址中的多少位。这个地址掩码对使我们可以只使用两个32位的号码来确定IP地址的范围。...相反,在访问列表中将通配符掩码中的一位设成1表示I P地址中对应的位既可以是1又可以是0。有时,可将其称作“无关”位,因为路由器在判断是否匹配时并不关心它们。

1.5K10

makefile

前言 这几天的实验让我觉得有必要学习一下makefile 参考博客:博客 会不会写makefile,从一个侧面说明了一个人是否具有完成大型工程的能力 makefile带来的好处是自动化编译 规则...上述make的工作方式 make寻找名为makefile或者Makefile的文件 寻找第一个目标文件,上述例子edit为最终的目标文件 如果edit文件不存在,那么make会寻找edit后的.o文件,...objects) 极大减少了代码量 清空clean .PHONY: cleanclean: -rm edit $(objects) .PHONY是一个伪目标,rm前的-告诉make也许某些文件会出现问题...,但不要管,继续clean makefile的文件系统 如果你不想使用makefile或者Makefile的文件名,可以用make -f file,file是你的文件名。...书写规则 make支持三个通配符: *,?,~ make可以在别的文件夹下寻找文件: VPATH=src:..

1.1K20

makefile 基础、进阶及常用 makefile

联合编译 makefile 上面的例子只是一个最简单的 makefile 的使用方法,但实际项目里面不可能只有一个文件,实际可能是多个 .c .h 组成,像这样的项目,我们该如何通过 makefile...而有些时候你会发现,这样编译带来的问题是如果我只改动了其中一个文件的代码,执行这个编译语法的时候,会重新编译所有的代码,小工程也就算了,如果是个大项目那肯定会很慢,所以这不是上上之选。...gcc main.o add.o sub.o mul.o -o app makefile 变量 接下来我们引入 makefile 变量机制,来修改一下上面的 makefile 文件。...makefile 中的 all 因为 makefile 的执行流程是找到第一个目标作为最终生成的目标,如果顺序错乱了,makefile 就可能报错,all 方法就是解决这个问题而存在的,并且,all 方法可以让一个...解决这个问题的办法就是将 clean 方法声明为一个_伪目标_,做就就是让 clean 无论如何都更新,同样我们生成的 all 目标也可能会出现这种情况,所以我们将它们两个都声明为伪目标,方法如下: src

35210

通配符掩码

在访问控制列表中,通配符掩码来指定主机、特定网络或网络的一部分,首先要理解块大小,其用于指定地址范围 块大小包括128、64、32、16、8、4等,在需要指定地址范围时,可使用能满足需求的最小块大小...0.0.0.0 (等价于 host 172.16.30.5) 其中4个0分别表示一个字节,0表示地址中相应字节必须与指定地址相同,要指定某个字节为任意值,可使用255,如下演示使用通配符掩码指定一个...因此你要禁止网络中的一部分(172.16.8.0~172.16.15.0)访问你的网络,则该范围对应块大小为8 (计算区间:15-8+1) ,因此在访问控制列表中,应使用网络号172.16.8.0和通配符掩码...上述网络号和通配符掩码告诉路由器,从172.16.8.0开始,向上数8个(块大小)网络,直到172.16.15.0 通配符掩码总是比块大小小1,在这个示例中,通配符掩码为7,因为块大小为8;如果使用的块大小为...16,则通配符掩码为15。

94310

linux 通配符 排除,linux通配符「建议收藏」

今天在看linux中有关Makefile文件的写法的时候,提到了通配符的概念。感觉似乎挺熟悉,但一时间竟想不起来到底为何物!经过在网上查询现总结如下: 1、linux中基本通配符: “?”...[cChH]通配符便可替代c或h字符的大小写形式。通配符集还能描述介于字符对之间的所有字符。如“[a-z]”就可以代替任意小写字母,而[a-zA-Z]则可替代任意字母。...与DOS相比,UNIX的通配符机制要比DOS好得多。在DOS中,任何在“*”之后,在“.”之后的字符均被忽略,所以下面的指令将不能得到你想象的结果。...2、可以在一条指令中用多个通配符 例如 rm a*out*tmp? 该命令可以删除一系列临时性的输出文件,如ab.out.temp1、ab.out.temp1等。...3、灵活使用通配符 UNIX可将有一定关的文件看作一集合的一部分,用户可以用该集合去匹配。

2.4K20

通配符订阅

多级通配符和单级通配符可用于订阅,但消息发布者不能在主题中使用。 主题级别分隔符 正斜杠 (/) 用于分隔主题树中的每个级别,并为主题空间提供分层结构。...当在订阅者指定的主题中遇到两个通配符时,使用主题级别分隔符非常重要。 多级通配符 数字符号 (#) 是与主题中任意数量的级别匹配的通配符。...多级通配符只能单独指定,也可以在主题级分隔符旁边指定。因此,#和finance/#都是有效的,但finance#是无效的。多级通配符必须是主题树中使用的最后一个字符。...单级通配符 加号 (+) 是仅匹配一个主题级别的通配符。...此外,由于单级通配符仅匹配单个级别,因此finance/+与finance不匹配。 单级通配符可以在主题树中的任何级别使用,也可以与多级通配符结合使用。

2.9K10
领券