make的概念及基本操作快速入门
创始人
2025-05-30 05:57:55

代码变成可执行文件,叫做 编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做 构建(build)。Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件有变化,就要重新构建的项目,都可以用Make构建。
make官网:https://www.gnu.org/software/make/manual/make.html

Make这个词,英语的意思是"制作"。Make命令直接用了这个意思,就是要做出某个文件。比如,要做出文件a.txt,就可以执行下面的命令。

make a.txt

但是,如果你真的输入这条命令,它并不会起作用。因为Make命令本身并不知道,如何做出a.txt,需要有人告诉它,如何调用其他命令完成这个目标。
比如,假设文件 a.txt 依赖于 b.txt 和 c.txt ,是后面两个文件连接(cat命令)的产物。那么,make 需要知道下面的规则。

a.txt: b.txt c.txtcat b.txt c.txt > a.txt

也就是说,make a.txt 这条命令的背后,实际上分成两步:第一步,确认 b.txt 和 c.txt 必须已经存在,第二步使用 cat 命令 将这个两个文件合并,输出为新文件
像这样的规则,都写在一个叫做Makefile的文件中,Make命令依赖这个文件进行构建。Makefile文件也可以写为makefile或者用命令行参数指定为其他文件名

make -f rules.txt
# 或者
make --file=rules.txt

上面代码指定make命令依据rules.txt文件中的规则,进行构建。

总之,make只是一个根据指定的Shell命令进行构建的工具。它的规则很简单,你规定要构建哪个文件、它依赖哪些源文件,当那些文件有变动时,如何重新构建它。


测试验证:
1. 新建b.txt、c.txt、Makefile文件。
在这里插入图片描述

# b.txt
bbbbbbbbbbbbbbbbbbbbb
# c.txt
cccccccccccccccccccc
# Makefile
a.txt: b.txt c.txtcat b.txt c.txt > a.txtclean:rm a.txt

2. 执行make命令
在这里插入图片描述
发现已经生成了a.txt。

3. 名字更换
  上面说过,Makefile也可以写为makefile,然后执行make,同样效果。
我们也可以将Makefile指定为别的名字,比如rules.txt。

# Makefile更名为rules.txt
mv Makefile rules.txt

此时直接执行make,显然不行,报错如下:
在这里插入图片描述

正确的执行命令:

make -f rules.txt
# 或
make --file=rules.txt

此时已经生成a.txt了,如下图所示。

在这里插入图片描述

# 清除命令,可以删除生成的a.txt
# 同样需要通过-f来指定包含规则的文件名
make clean -f rules.txt
# 或
make clean --file=rules.txt

相关内容

热门资讯

今年我省粮食产量达515.56... (来源:辽宁日报)转自:辽宁日报 图为在中储粮(盘锦)储运有限公司,装运粮食的重型卡车排起长队...
国家发展改革委部署促进投资止跌... (来源:辽宁日报)转自:辽宁日报 新华社北京12月13日电 (记者魏玉坤) 记者13日从全国发展和改...
江苏省实施《中华人民共和国森林... (来源:新华日报) 目 录 第一章 总则 第二章 森林、林木和林地权属管理...
姜堰数字化产品讲“活”理论 (来源:新华日报) □ 本报记者 卢佳乐 通讯员 姜宣 “王教授,您约我‘喝茶论道’,...
联合国维和部队在苏丹遇袭 6人... 转自:财联社【联合国维和部队在苏丹遇袭 6人死亡】财联社12月14日电,当地时间13日,苏丹武装部队...