初步了解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

相关推荐

点赞 评论 收藏
转发
10 11 评论
分享
牛客网
牛客企业服务