makefile通配符
什么是通配符???
通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。
当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。 实际上用“*Not?pad”可以对应Notepad\MyNotepad【*可以代表任何字符串;?仅代表单个字符串,但此单字必须存在】;Notep[ao]d可以对应Notepad\Notepod【ao代表a与o里二选一】,其余以此类推。
通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。
“?”:
可以使用问号代替一个字符。如果输入love?,查找以love开头的一个字符结尾文件类型的文件,如lovey、lovei等。
要缩小范围可以输入love?.doc,查找以love开头的一个字符结尾文件类型并.doc为扩展名的文件如lovey.doc、loveh.doc。
“*”:
可以使用星号代替零个、单个或多个字符。
如果正在查找以AEW开头的一个文件,但不记得文件名其余部分,可以输入AEW*,查找以AEW开头的所有文件类型的文件,如AEWT.txt、AEWU.EXE、AEWI.dll等。
要缩小范围可以输入AEW*.txt,查找以AEW开头的所有文件类型并.txt为扩展名的文件如AEWIP.txt、AEWDF.txt。
目标文件:依赖文件
(tab)命令
.o文件:.c文件 .h文件
(tab)命令
递归调用makefile,从底层调用到顶层,这个不理解???
一直对工作流程不熟悉,这个很重要。
Makefile的工作流程
没有指定输出项目时,Makefile会先在所有目标中找到第一个没有通配符的目标进行构造;
例如本文中的all,即时它是个伪目标
根据构造all的规则,需要构造(BUILD),而(BUILD),而(BUILD),而(BUILD)即是(BUILDDIR)下无后缀的可执行文件于是要构造的目标就变为了(BUILD_DIR)下无后缀的可执行文件 于是要构造的目标就变为了(BUILDDIR)下无后缀的可执行文件于是要构造的目标就变为了(OBJ_DIR)/%.o,然后make在规则中继续寻找,找到了一个匹配的规则$(BUILD_DIR)/%: $(OBJ_DIR)/%.o,但不幸的是该规则依赖OBJS := (SRCS:(SRCS:(SRCS:(SRC_DIR)/%.c=(OBJDIR)/下面又找到了(OBJ_DIR)/%.o),于是继续寻找 下面又找到了(OBJDIR)/下面又找到了(OBJ_DIR)/%.o: (SRCDIR)/完成后回到上层进行对.o文件的链接,然后继续回到上层,重复这个过程使得对于每一个(SRC_DIR)/%.c,现在不需要继续寻找了,即执行这个规则下的语句进行编译但不链接 完成后回到上层进行对.o文件的链接,然后继续回到上层,重复这个过程使得对于每一个(SRCDIR)/完成后回到上层进行对.o文件的链接,然后继续回到上层,重复这个过程使得对于每一个(BUILD)中的目标都得到了生成。
linux查看目录树形结构tree命令相关
安装tree命令。
#yum -y install tree
查看是否安装成功。
#yum list installed tree
直接执行tree命令看看。
#tree
如果当前目录下众多内容,直接tree命令会很惨。
执行命令:
#tree -L 1
只查看当前目录下内容
makefile通配符相关推荐
- 在WinAVR中设置Makefile自动编译多个源文件
初次使用WinAVR,了解到需要通过Makefile文件来设定程序编译时的一些值,发现当一个工程中加入多个源文件时不能同时编译,网上查了一下,需要修改Makefile文件: # List C sour ...
- 嵌入式杂谈之makefile补充
我看了下自己的文章库存,好像还没有一篇关于Makefile的文章,所以这篇刚好可以弥补自己的缺失. makefile预定义变量 预定义变量即系统自带的变量 预定义变量 作用 AR 库文件维护程序的名称 ...
- arm-linux-gcc 和Makefile
Makefile文件编写 all:arm-linux-gcc -c -o led_on.o led_on.sarm-linux-ld -Ttext 0 led_on.o -o led_on.elf / ...
- Linux C语言高级学习第八天(gcc代码优化makefile)
多个.c文件的混合编译 1.gcc C语言编译器 gcc xxx.c -o xxx -o :指定生成产物的名称 免费.开源.速度快(快30%).占用内存小.gcc代码优化 gcc支持对代码进行三级优化 ...
- linux编程GCC、gdb、Makefile、make、
文章目录 GCC gcc编译过程 gcc编译多文件 gdb 动态库和静态库 创建静态库 使用静态库 动态库 动态库的创建 动态库的使用 静态库和动态库的区别 make make是什么 1 make命令 ...
- Makefile学习之通配符和自动变量
规则中的通配符 "*" ,"?" ," [...]", " % " , " wildcard " 1 ...
- makefile之通配符(4)
如果我们想定义一系列比较类似的文件,我们很自然地就想起使用通配符.make支持三个通配符:"*","?"和"~".这是和Unix的B-She ...
- Makefile中patsubst(扩展通配符)的含义
patsubst 是 Makefile 里的一个函数 语法 #查找text中的单词,如果匹配pattern,那么就用replacement的内容替换 #返回:函数返回被替换过后的字符串. #$(pat ...
- 对makefile中,变量定义中 通配符的理解
见如下例子: LIB=*.oall: $(LIB)@echo $^$(LIB):@echo $@ 执行结果: *.o *.o 所以 转载于:https://www.cnblogs.com/gaojia ...
- 浅显易懂 Makefile 入门 (09)— include 文件包含、MAKECMDGOALS
1. include文件包含 当 make 读取到 include 关键字的时候,会暂停读取当前的 Makefile,而是去读 include 包含的文件,读取结束后再继读取当前的 Makefile ...
最新文章
- 在数据库创建表的时候,时间设置为什么类型,会随着每次提交的时间发生变化
- fabric 简单理解
- DLL基础——Windows核心编程学习手札之十九
- 复现原文(二):Single-cell RNA sequencing of human
- Windows内存管理(3)--检查内存可用性,结构化异常处理 和 ASSERT
- PostgreSQL的常见参数和技巧
- linuxpython源文件_Python3 源码安装(Linux 版)
- .net 编译工具_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实
- 10分钟也不一定学会的灵敏度分析
- Oracle PL / SQL – INSTEAD OF触发器示例
- 弘辽科技:淘宝评分飘绿四大原因及快速提高评分之解决技巧
- laravel5.5 Validator 自定义错误提示语
- 【Python 常用英文单词】——总结Python常用的英文单词 最全版
- VScode中crtl+鼠标左键无法跳转
- 在外包干了几年,感觉自己都快费了
- php网页无痕预览,javascript,html5_如何应对用户使用无痕浏览模式,javascript,html5 - phpStudy...
- 道通科技自动化测试面试
- 递归解决年龄问题---c语言实现
- Chap.19 总结《CL: An Introduction》 (Vyvyan Evans)
- N76E003开发笔记(关于使用N76E003过程遇到的问题)