首页 > 初步了解makefile
头像
橙木
编辑于 2021-03-25 10:53
+ 关注

初步了解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下的指令内容

全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐