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 中的规则相关推荐

  1. makefile中模式规则的引入和介绍------%:%.cpp

    原文地址:http://blog.csdn.net/stpeace/article/details/53054679 目录下有test1.cpp, test2.cpp, test3.cpp三个独立文件 ...

  2. 对makefile中:单冒号普通规则和::双冒号规则的理解 -转

    原文地址:对makefile中:单冒号普通规则和::双冒号规则的理解 作者:gliethttp luther: /gliethttp/a.c /gliethttp/b.c /gliethttp2/c. ...

  3. Makefile中的双冒号规则

    双冒号规则就是使用"::"代替普通规则的":"得到的规则.当同一个文件作为多个规则的目标时,双冒号规则的处理和普通规则的处理过程完全不同(双冒号规则允许在多个规 ...

  4. .PHONY makefile中的伪目标

    拿clean举例,如果make完成后,自己另外定义一个名叫clean的文件,再执行make clean时,将不会执行rm命令. 为了避免出现这个问题,需要.PHONY: clean ========= ...

  5. Makefile中指示符“include”、“-include”和“sinclude”的区别

    指示符"include"."-include"和"sinclude" 如果指示符"include"指定的文件不是以斜线开 ...

  6. Makefile中常用的函数

     常用函数调用 语法: $(<function> <arguments>)或 ${<function><arguments>} <functi ...

  7. makefile中的include *******

    对于makefile中的include ***,***指的是包含的文件,当执行makefile时,先执行include ***这句,加载包含的文件(夹),如果不存在则会报错! 如果在include前面 ...

  8. makefile中变量有哪些?

    make一些参数选项: -p 选项,可以打印出make过程中的数据库, 下面研究一下内置的变量和规则. -n 选项, 只运行,不执行, -d 选项,相当于–debug=a,b(basic),v(ver ...

  9. Makefile中的wilcard函数

    在Makefile规则中,会对通配符进行展开,但是在变量的定义和函数的引用的时候通配符就会失效,这种情况下若是想让通配符有效,就需要使用函数"wildcard",使用方法是:$(w ...

最新文章

  1. NTU 课程 7454 (5) CNN进阶
  2. 当前深度神经网络模型压缩和加速都有哪些方法?
  3. python之路_Python之路
  4. some VM operation when debugging appointment startup
  5. 组合数据类型练习,英文词频统计实例上(2017.9.22)
  6. 如何写_家长如何为老师写评语
  7. 三级python考试难吗_Python自学之路:三级菜单
  8. 微信小程序云开发教程-JavaScript入门(4)-捕捉异常
  9. hibernate 基本步骤 一
  10. UE4开发笔记1——UE4(虚幻4)引擎下载与安装
  11. C语言UDP socket编程
  12. matlab误差平方和
  13. Python就业指导
  14. Unity--Configurable Joint——实战带你了解可配置关节
  15. “云适配”获1亿元B+轮融资,盯上了大企业的移动化需求
  16. 行业分析-全球与中国湿部淀粉市场现状及未来发展趋势
  17. mysql alter table drop constraint_MySQL添加,修改,删除表的列,约束等表的定义。
  18. vue解决火狐浏览器滚动条问题
  19. 运筹学 基础 知识点总结 (八)
  20. MySQL 数据库(包括基础和进阶CURD、事务和索引)

热门文章

  1. java基础- 与null的区别
  2. BBAug: 一个用于PyTorch的物体检测包围框数据增强包
  3. 智能文档分析:NLP和OCR的融合技术
  4. 开放273项AI能力,创建34万模型,汇聚265万开发者,百度大脑的2020成果一览
  5. 时隔一年,盘点CVPR 2019影响力最大的20篇论文
  6. CV Code|计算机视觉开源周报20200503期
  7. 阿里巴巴开源轻量级深度神经网络推理引擎MNN
  8. Python 实现简单的爬虫
  9. 一位程序员的迷茫:每天5:30准时下班,月薪10000+
  10. 全栈工程师对Python面试中is和==的区别做出解释!看完真的学到了