Makefile
来源:互联网 发布:手机号码人肉搜索软件 编辑:程序博客网 时间:2024/06/10 19:02
- Makefile
- 变量声明
- 变量使用
- 换行符 类似define功能
- 自动推导
- 隐晦规则
- PHONY表声明的文件是伪标件
- 减号-
- 命令以TAB开始
- 语法规则
- 指定make的文件
- 引用其他
- 伪目标
Makefile
1. 变量声明:
- 递归展开: 将变量完全展开, 如果变量中还有其他变量也全部展开;
VAR = var
- 简单展开: 只是展开一次, 不展开它包含的其他变量;
VAR := var
2. 变量使用
`$(VAR)`
换行符 “\”, 类似#define功能.
自动推导
- 只要make看到⼀个[.o]⽂件,它就会⾃动的把[.c]⽂件加在依赖关系中;
xx.o : xx.c xx.h gcc xx.c -o xx.o
由于自动推导, 根据make隐式规则, 可以成 xx.o : xx.h
从而省略.c.
隐晦规则
1. “.PHONY”表⽰声明的文件是伪⽬标⽂件。
如: .PHONY : clean
.
.PHONY意思表⽰clean是⼀个“伪⽬标”;
2. 减号”-“
命令前加”-“, 表示如果某些⽂件出现问题,但不要管,继续做后⾯的事。如:
.PHONY : cleanclean : -rm edit $(objects)
这样,即使有些文件有问题, 仍可以完成rm操作.
3. 命令以”TAB“开始.
语法规则
1. 指定make的文件
当有多个Makefile,可是指定make的文件.make -f file_name
;
2. 引用其他
在一个Makefile中同时完成其他makefile的编译工作, (如android中很多的.mk文件):
include <filename>
filename是当前操作系统shell的文件模式.(支持通配符, 变量$());
make命令开始时,会把找寻include所指出的其它Makefile,并把其内容安置在当前的位置。
如果有⽂件没有找到的话,make会⽣成⼀条警告信息,但不会马上出现致命错误。它会继续载⼊其它的⽂件,⼀旦完成makefile的
读取,make会再重试这些没有找到,或是不能读取的⽂件,如果还是不⾏,make才会出现⼀条致命信息。
如果你想让make不理那些⽆法读取的⽂件,⽽继续执⾏,你可以在include前加⼀个减号“-”
3. 伪目标
为了避免和⽂件重名的这种情况,我们可以使⽤⼀个特殊的标记“.PHONY”来显⽰地指明⼀个⽬标是“伪⽬标”,向make说明,不管
是否有这个⽂件,这个⽬标就是“伪⽬标”。 .PHONY : clean
如果你的Makefile需要⼀口⽓⽣成若⼲个可执⾏⽂件,但你只想简单地敲⼀个make完事,
并且,所有的⽬标⽂件都写在⼀个Makefile中,那么你可以使⽤“伪⽬标”这个特性.
all : prog1 prog2 prog3.PHONY : allprog1 : prog1.o utils.o cc -o prog1 prog1.o utils.oprog2 : prog2.o cc -o prog2 prog2.oprog3 : prog3.o sort.o utils.o cc -o prog3 prog3.o sort.o utils.o
- Makefile
- Makefile
- makefile
- makefile
- makefile
- Makefile
- Makefile
- Makefile
- Makefile
- Makefile
- Makefile
- makefile
- Makefile
- makefile
- Makefile
- makefile
- makefile
- makefile
- selenium之处理下拉列表
- 自定义View Layout过程
- android developer tiny share-20170512
- Java NIO 详解
- 100. Same Tree
- Makefile
- 4.5.2_带有透明度特效的橡皮筋式选取框
- Unity相册滚动效果
- 安卓之TranslateAnimation图片移动
- 自定义View Draw过程- 最易懂的自定义View原理系列(4)
- UE4 打开EXE文件
- IDEA从安装、破解、汉化、设置成eclipse快捷键和运行第一行代码综合实战
- 4.5.2.3_负片滤镜
- Python Scipy Tutorials:Distance between points