esp8266~makefile学习,腾讯T2大牛亲自讲解

Makefile 是和 make 命令一起配合使用的. makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。很多大型项目的编译都是通过Makefile来组织的,如果没有Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂。

Makefile的组织流程的能力如此之强,不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作。

1、makefile使用规则

规则的三要素:目标、指令、依赖

三要素

target: components

TAB rule

第一个目标是终极目标,之后的目标为子目标。

更新目标会自动检查依赖是不是最新的,生产最新的目标。

工作原理

实例中当前目录中有main.c、add.c、div.c、mul.c、sub.c、add.h、div.h、mul.h、sub.h共9个源文件,main.c中通过include调用add、div、mul、sub中提供的方法,下面就一步一步的深入学习makefile中基本的书写。

#makefile v1

main:main.c add.c div.c mul.c sub.c

gcc main.c add.c div.c mul.c sub.c -o main

当源文件过多时,一条指令会很长,每次添加新的源文件则需要更改一次makefile,所以换下面一种方式书写makefile:

#makefile v2

app:main.o add.o div.o mul.o sub.o

gcc main.o add.o div.o mul.o sub.o -o app

main.o: main.c

gcc -c main.c

main.o: add.c

gcc -c add.c

main.o: sub.c

gcc -c sub.c

main.o: mul.c

gcc -c mul.c

main.o: div.c

gcc -c div.c

2、makefile中的变量

1、自定义变量:直接使用=号定义赋值,使用$取值

2、自动变量

makefile中系统自己维护的变量,通常是大写,可直接使用=号修改它的值,如下:

CC = cc

CPPFLAGS = i

3、变量的赋值:

= 是最基本的赋值

:= 是覆盖之前的值

?= 是如果没有被赋值过就赋予等号后面的值

+= 是添加等号后面的值

了解完这些之后,可将makefile中不变的字符串用变量替换,当然还需要记住下面两点:

1、变量的三种用法只能在命令中使用:

变量

2、在规则的目标定义和依赖条件中可使用%做通配符

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

【附】相关架构及资料

资料领取

点击这里免费获取Android IOC架构设计等资料

77294)]

[外链图片转存中…(img-FuCtJMxG-1711181377294)]

资料领取

点击这里免费获取Android IOC架构设计等资料

领取获取往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值