Linux中make和makefile

make与makefile

  • 简单介绍
  • 常见用法
    • 符号替代
    • 自动寻找
    • 设置变量
    • 取消打印提示

简单介绍

make是Linux中一个命令,与之匹配的是makefile,makefile是一个文件。make会根据makefile中的内容完成对应的工作

创建一个名为makefile的文件
vim打开makefile
第一行是依赖关系,my.exe 是我们要生成的文件,后面是依赖文件列表,依赖文件列表可以有很多个
第二行是依赖方法,就是我们要通过什么方式获得我们要生成的方式,依赖方法开头必须是Tab键,不能是空格(依赖方法可以不止一个,依赖关系下的所有命令都会执行,可以通过这样一次进行多步操作
第三行的.PHONY代表后面的命令总是被执行
第四行依然是依赖关系,clean比较特殊,依赖文件列表可以为空
第五行是依赖方法
Linux中make和makefile_第1张图片

如果我们单纯执行make命令,默认执行makefile中的第一个依赖关系的以来方法,如果我们把clean的放第一行,那么默认就会执行clean
Linux中make和makefile_第2张图片

如果没有放在第一行,那么就要make 依赖关系的目标文件,比如,如果my.exe放在下面,如果要形成my.exe,就要make my.exe。
Linux中make和makefile_第3张图片

当make形成可执行程序以后,就无法再次make,这是因为我们的文件已经是最新的了,如果再次编译很浪费时间,小程序还好,不明显,如果是很大的项目,编译就会花很久的时间。
Linux中make和makefile_第4张图片

通过stat可以查看文件acm时间,其中makefile就是对比Modify的时间,如果可执行程序的时间是最新的,就无法进行make。
PHONY修饰的符号总是可以执行,就是不去对比时间,所有才可以一直执行
Linux中make和makefile_第5张图片

常见用法

符号替代

$@代指要生成的目标文件
$^代指依赖文件
@代表目标文件,^代表依赖文件,$表示提取文件
Linux中make和makefile_第6张图片

自动寻找

同样可以这样写,如果发现没有code.o会自动向下寻找,发现所依赖的.s文件也没有,那么就会递归式地向下寻找,一直到找到为止,否则就报错。但是我们要形成地目标文件要在第一行,因为默认形成第一行地目标文件。
Linux中make和makefile_第7张图片

设置变量

设置变量为我们的目标文件和依赖文件
用$符号取出我们的变量取代的文件
同样可以生成我们的目标文件
Linux中make和makefile_第8张图片

取消打印提示

输入命令会提示,在每一条依赖方法前面加@就不会再进行提示了

在这里插入图片描述
Linux中make和makefile_第9张图片
在这里插入图片描述

你可能感兴趣的:(Linux,linux,apache,运维)