初步了解makefile

Makefile中主要包含了五个方面:显式规则、隐晦规则、变量定义、文件指示和注释

显式规则:主要是指makefile如何生成一个或者多个的目标文件,即通过【目标文件:依赖文件+编译指令】这种模式层层替代

隐晦规则:能帮助我们较为简便地粗糙地书写makefile,利用那些隐晦的规则能简化我们的makefile

变量定义:类似于宏定义的概念,利用一个符号代替一些变量或者数据,最大的好处便是在大量重复使用某个单体或者群体的时候,若采用变量定义便于修改

文件指示:包含三种情况,分别是引入其他makefile、使用条件编译限制makefile的有效部分、定义多行命令

注释:采用#来完成行注释,解释代码

当你敲下make指令时,make执行的流程是:

1.读入所有的makefile
2.读取被include的其他makefile
3.初始化文件中的变量
4.推到隐晦规则,并分析所有规则
5.为所有的目标文件创建依赖关系链
6.根据依赖关系,决定哪些目标要重新生成
7.执行生成命令

1-5 步为第一个阶段,6-7 为第二个阶段。第一个阶段中,如果定义的变量被使用了,那么,make 会把其展开在使用的位置。但 make并不会完全马上展开,make 使用的是拖延战术,如果变量出现在依赖关系的规则中,那么仅当这条依赖被决定要使用了,变量才会在其内部展开

makefile的语法规则是:
targets:prerequisites
command

targets:是文件名,为我们需要编译的对象
prerequisites:是我们编译时依赖的文件
command:便是我们需要make执行编译时所用的命令,该命令的来源一般来自Unix下的/bin/sh下的指令内容

#创作者计划##技术栈##Linux#
全部评论
感谢参与【创作者计划2期·技术干货场】!欢迎更多牛油来写干货,瓜分总计20000元奖励!!技术干货场活动链接:https://www.nowcoder.com/link/czz2jsghtlq(参与奖马克杯将于每周五结算,敬请期待~)
点赞 回复 分享
发布于 2021-03-25 20:05

相关推荐

05-11 11:48
河南大学 Java
程序员牛肉:我是26届的双非。目前有两段实习经历,大三上去的美团,现在来字节了,做的是国际电商的营销业务。希望我的经历对你有用。 1.好好做你的CSDN,最好是直接转微信公众号。因为这本质上是一个很好的展示自己技术热情的证据。我当时也是烂大街项目(网盘+鱼皮的一个项目)+零实习去面试美团,但是当时我的CSDN阅读量超百万,微信公众号阅读量40万。面试的时候面试官就告诉我说觉得我对技术挺有激情的。可以看看我主页的美团面试面经。 因此花点时间好好做这个知识分享,最好是单拉出来搞一个板块。各大公司都极其看中知识落地的能力。 可以看看我的简历对于博客的描述。这个帖子里面有:https://www.nowcoder.com/discuss/745348200596324352?sourceSSR=users 2.实习经历有一些东西删除了,目前看来你的产出其实很少。有些内容其实很扯淡,最好不要保留。有一些点你可能觉得很牛逼,但是面试官眼里是减分的。 你还能负责数据库表的设计?这个公司得垃圾成啥样子,才能让一个实习生介入数据库表的设计,不要写这种东西。 一个公司的财务审批系统应该是很稳定的吧?为什么你去了才有RBAC权限设计?那这个公司之前是怎么处理权限分离的?这些东西看着都有点扯淡了。 还有就是使用Redis实现轻量级的消息队列?那为什么这一块不使用专业的MQ呢?为什么要使用redis,这些一定要清楚, 就目前看来,其实你的这个实习技术还不错。不要太焦虑。就是有一些内容有点虚了。可以考虑从PR中再投一点产出
点赞 评论 收藏
分享
评论
10
11
分享

创作者周榜

更多
牛客网
牛客企业服务