### make是什么?
官方对make的解释如下:GNU Make is a tool which controls the generation of executables and other non-source files of a program from the program's source files.
make是一个能控制可执行程序和非源文件的生成的工具。
### 如何使用make?
为了使用make工具,我们需要编写makefile文件,当我们在某个路径下运行`make`命令时,工具会自动寻找该路径下名为makefile的配置文件进行解析。
### makefile文件的主要内容
makefile的主要内容定义了文件之间的依赖关系,以及一些文件如何生成。
举个例子,在如下makefile文件中
~~~makefile
hvite: hvite.cpp lib.cpp lib.h
g++ -o hvite hvite.cpp lib.cpp
~~~
这个makefile文件的作用时利用`hvite.cpp`、`lib.cpp`、`lib.h`来生成可执行文件`hvite`。
第一行表明了一个依赖关系,即hvite必须在后面的三个文件都准备好之后再生成,而下面的一行给出了如何生成hvite文件。当我们改动了依赖文件时,例如修改了`hvite.cpp`时,因为`hvite.cpp`这个依赖文件的时间戳要比已经生成的`hvite`的时间戳新,所以再次执行`make`命令时,就是用下面的命令重新生成`hvite`。
或者我们可以这样表示`make`的行为:当运行`make`命令时,`make`工具检查makefile文件中所有的目标文件,当目标文件的时间戳比任意一个依赖文件要旧或者目标文件不存在时,运行其下的命令(这些命令可以是任意的shell命令)重新生成目标文件。
### make的作用
我们可以认为`make`工具是根据makefile文件中的依赖控制建立了一张图,图中的每个目标节点附带了一组操做,当目标节点的时间戳比任意前驱结点的时间戳小时,用该节点上的操做更新该节点,直到图中不存在这样的节点。显然只要层序遍历文件依赖图就可以完成`make`的工作。
- Linux
- bash常见的命令汇总
- 切换用户登陆到bash时的目录
- grep匹配tab
- gperftools的使用
- Hyper-V安装Linux
- ubuntu on windows 忘记密码怎么办
- 修改用户默认shell
- ubuntu 安装pip
- Arch Linux安装记录
- Hyper-V中安装Linux的一些问题
- ASR
- 数据集
- PCM音频文件
- One-Pass算法
- CHiME5环境配置中遇到的一些问题
- Python
- 命令行参数解析
- 三目运算符
- Numpy
- 练习1
- 练习2
- Others
- GNU make 的用法
- pandoc
- Git
- PowerShell
- 花括号的作用
- 一条命令在多行内输入
- Tex
- Latex基础知识
- tikz库
- CTex使用中的一些问题
- C++
- 标准库list
- 数据结构
- kdtree
