esp8266~makefile学习,面试心得体会

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面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包——————可以点击我的【Github】免费下载,最后觉得有帮助、有需要的朋友可以点个赞

友可以点个赞

[外链图片转存中…(img-uUyt63FZ-1711391796833)]

[外链图片转存中…(img-geT253uR-1711391796833)]

[外链图片转存中…(img-Yywg4UDW-1711391796834)]

  • 18
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值