Makefile:(实验)多个目标匹配时会采用最完整匹配的目标
结论源自实验测试,如果有疏漏希望指出
当Makefile中存在多个匹配的目标时,Makefile会采用哪个匹配的目标呢?
测试的Makefile如下:
.PHONY: all clean quick_sort
all: quick_sort bubble_sort
#目标1
quick_sort:
@echo "matching $@"
@echo 'in quick_sort'
#目标2
%:
@echo "matching $@"
@echo 'in %'
#目标3
%_sort:
@echo "matching $@"
@echo 'in %_sort'
clean:
$(RM) *.o bubble_sort quick_sort
测试结果如下:
$make
matching quick_sort
in quick_sort
matching bubble_sort
in %_sort
在实验中,all目标有两个依赖的子目标quick_sort和bubble_sort。
在匹配quick_sort子目标时,目标1-3都符合,按实验结果,最终执行的是目标1。
在匹配bubble_sort子目标时,目标2-3都符合,按实验结果,最终执行的是目标3。
为了避免从上往下顺序匹配的可能,在匹配quick_sort时,特地把最完整匹配放在目标1。
按上述实验的现象,我们可以发现:
完整匹配 > 通配符半匹配 > 完全通配符匹配
Makefile:(实验)多个目标匹配时会采用最完整匹配的目标的更多相关文章
- makefile实验二 对目标的深入理解 以及rebuild build clean的实现
(一) rebuild build clean的实现 新知识点: 当一个目标的依赖是一个伪目标时,这个伪目标的规则一定会被执行. 贴实验代码 CC := gcc Target := helloworl ...
- makefile实验一 make的基本原则、伪目标、以及不使用.PHONY确实现和伪目标一样功能的一种方法
target: echo "hello_Makefile" .PHONY: clean clean: echo "clean Done .2019" 使用伪目标 ...
- Makefile规则③规则语法、依赖、通配符、目录搜寻、目标
规则语法 通常规则的语法格式如下: TARGETS : PREREQUISITES COMMAND ... 或者: TARGETS : PREREQUISITES ; COMMAND COMMAND ...
- makefile实验四 编译本地的源文件 + 变量的高级主题一
<一>编译本地的源文件 + 变量的模式替换 实验代码 root@ubuntu:~/Makefile_Test/5make_test# vim makefile target := t ...
- org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 6; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标。
Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error ...
- 【转载】配置文件报错:不允许有匹配 [xX][mM][lL] 的处理指令目标
今天编写代码的时候,不小心给一个xml文件的首行加了一行空格,导致了启动报了如题类似的错误,查到一篇文章,顺藤摸瓜发现了这个失误,文章转载如下: 框架整合 的时候,XML 配置文件大多数情况是从另一个 ...
- 配置文件报错:不允许有匹配 [xX][mM][lL] 的处理指令目标。
http://www.68idc.cn/help/buildlang/ask/20150108163110.html ————————————————————————————————————————— ...
- Bug解决方案:org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 8; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标
十月 17, 2016 10:14:30 下午 org.springframework.context.support.AbstractApplicationContext prepareRefres ...
- 不允许有匹配 "[xX][mM][lL]" 的处理指令目标
八月 , :: 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRule]{Server/Se ...
随机推荐
- Windows系统通用安全配置基线
一:共享账号检查 配置名称:账号分配检查,避免共享账号存在 配置要求: 1.系统需按照实际用户分配账号: 2.根据系统的使用需求,设定不同的账户和账户组,包括管理员用户,数据库用户,审计用户,来宾用户 ...
- 使用NPOI 2.1.1读取EXCEL2003/2007返回DataTable
winform中打开excel的筛选器设置为:openFileDialog.Filter = "Excel 文件(*.xls)|*.xls;*.xlsx"; 一,不借助插件读取Ex ...
- Android开发–Intent-filter属性详解
Android开发–Intent-filter属性详解 2011年05月09日 ⁄ Andriod ⁄ 暂无评论 ⁄ 被围观 1,396 views+ 如果一个 Intent 请求在一片数据上执行一个 ...
- 41、Thead线程 System.Thread与互斥体Mutex
Thead线程 System.Thread 使用Thread类可以创建和控制线程.下面的代码是创建和启动一个新线程的简单例子.Thread 类的构造函数重载为接受ThreadStart和Paramet ...
- 第一次课堂作业之Circle
1.问题描述: Create a program that asks for the radius of a circle and prints the area of that circle, us ...
- 初探BeEF
1.什么是BeEF? 就是 The Browser Exploitation Framework 的缩写,意在通过一些手段,控制对方的浏览器. 里面集成了很多模块,能够获取很多东西,有cookie,浏 ...
- Webpack知识汇总
介绍 webpack把任何一个文件都看成是一个模块,模块间可以相互依赖(require or import),webpack的功能就是把相互依赖的文件打包在一起.webpack本身只能处理原生的Jav ...
- ECharts 图表设置标记的大小 symbolSize 和获取标记的值
ECharts 是百度出品,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等) ...
- 一般处理程序中,获取session
注意了: 1.要在一般处理程序中获取其他页面的session值,需要引用名空间: using System.Web.SessionState; 2.然后继承一个接口:IRequiresSessionS ...
- J2EE从下载到配置成功
1,首先在www.oracle.com网站下载JDK 2 3 4,可以根据自己的需要下载相应的JDK 5,在安装的过程中要将JDK的安装路径和JRE的安装路径安装在不同文件夹中以示区别,例如 6,配置 ...