Makefile 中的规则
makefile 规则基本格式
一条 makefile 规则由以下几部分组成:
target ... : prerequisites ...recipe......
Please note: you need to put a tab character at the beginning of every recipe line!
makefile 没有在命令行中指定执行哪部分时候,第一个 target 会作为最终目标,下边所示的code生成 test_1.o 之后就会结束。
$ cat makefile test_1.o : test_1.cgcc -c test_1.c test_2.o : test_2.cgcc -c test_2.c
下边所示代码中,第一行为生成 test_1.o、 test_2.o 提供规则。也就是说,第一行的 target 不会成为 goal, goal 为 all。
$ cat makefile %.o : %.cgcc -c -O2 $<all : test_1.o test_2.o clean: rm *.o
makefile 规则隐藏彩蛋
当最终的goal与prerequisites中某一个文件名相同时,会自动链接生成以该文件名命名的可执行文件。
$ cat Makefile TEST_1 := test_1.oTEST_2 := test_2.otest_1: $(TEST_1) $(TEST_2)clean:rm *.o
当一个target 分多次指定 prerequisites 时,多次指定的 prerequisites 都参与 target 的生成。
$ cat Makefile test : test_1.o test : test_2.otest : test.o
makefile 规则中特殊 target(GNU makefile 4.8)
某些名字作为 target 时有特殊意义。
- .EXPORT_ALL_VARIABLES 表示将所有的变量传递给下层makefile
转载于:https://www.cnblogs.com/rivsidn/p/11006748.html
Makefile 中的规则相关推荐
- makefile中模式规则的引入和介绍------%:%.cpp
原文地址:http://blog.csdn.net/stpeace/article/details/53054679 目录下有test1.cpp, test2.cpp, test3.cpp三个独立文件 ...
- 对makefile中:单冒号普通规则和::双冒号规则的理解 -转
原文地址:对makefile中:单冒号普通规则和::双冒号规则的理解 作者:gliethttp luther: /gliethttp/a.c /gliethttp/b.c /gliethttp2/c. ...
- Makefile中的双冒号规则
双冒号规则就是使用"::"代替普通规则的":"得到的规则.当同一个文件作为多个规则的目标时,双冒号规则的处理和普通规则的处理过程完全不同(双冒号规则允许在多个规 ...
- .PHONY makefile中的伪目标
拿clean举例,如果make完成后,自己另外定义一个名叫clean的文件,再执行make clean时,将不会执行rm命令. 为了避免出现这个问题,需要.PHONY: clean ========= ...
- Makefile中指示符“include”、“-include”和“sinclude”的区别
指示符"include"."-include"和"sinclude" 如果指示符"include"指定的文件不是以斜线开 ...
- Makefile中常用的函数
常用函数调用 语法: $(<function> <arguments>)或 ${<function><arguments>} <functi ...
- makefile中的include *******
对于makefile中的include ***,***指的是包含的文件,当执行makefile时,先执行include ***这句,加载包含的文件(夹),如果不存在则会报错! 如果在include前面 ...
- makefile中变量有哪些?
make一些参数选项: -p 选项,可以打印出make过程中的数据库, 下面研究一下内置的变量和规则. -n 选项, 只运行,不执行, -d 选项,相当于–debug=a,b(basic),v(ver ...
- Makefile中的wilcard函数
在Makefile规则中,会对通配符进行展开,但是在变量的定义和函数的引用的时候通配符就会失效,这种情况下若是想让通配符有效,就需要使用函数"wildcard",使用方法是:$(w ...
最新文章
- NTU 课程 7454 (5) CNN进阶
- 当前深度神经网络模型压缩和加速都有哪些方法?
- python之路_Python之路
- some VM operation when debugging appointment startup
- 组合数据类型练习,英文词频统计实例上(2017.9.22)
- 如何写_家长如何为老师写评语
- 三级python考试难吗_Python自学之路:三级菜单
- 微信小程序云开发教程-JavaScript入门(4)-捕捉异常
- hibernate 基本步骤 一
- UE4开发笔记1——UE4(虚幻4)引擎下载与安装
- C语言UDP socket编程
- matlab误差平方和
- Python就业指导
- Unity--Configurable Joint——实战带你了解可配置关节
- “云适配”获1亿元B+轮融资,盯上了大企业的移动化需求
- 行业分析-全球与中国湿部淀粉市场现状及未来发展趋势
- mysql alter table drop constraint_MySQL添加,修改,删除表的列,约束等表的定义。
- vue解决火狐浏览器滚动条问题
- 运筹学 基础 知识点总结 (八)
- MySQL 数据库(包括基础和进阶CURD、事务和索引)