Makefile 介绍
make 命令执行时,需要一个 Makefile 文件,以告诉 make 命令需要怎么样的去编译和链接
程序。
我们的规则是:
1)如果这个工程没有编译过,那么我们的所有 C 文件都要编译并被链接。
2)如果这个工程的某几个 C 文件被修改,那么我们只编译被修改的 C 文件,并链接目标程序。
3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的 C 文件,并链接目标程序。
只要我们的 Makefile 写得够好,所有的这一切,我们只用一个 make 命令就可以完成,make命令会自动智能地根据当前的文件修改的情况来确定哪些文件需要重编译,从而自己编译所需要的文件和链接目标程序。
Makefile书写规则
target … : prerequisites …
command
…
…
target 也就是一个目标文件,可以是 Object File,也可以是执行文件。还可以是一个标签(Label)。 prerequisites 就是,要生成那个 target 所需要的文件或是目标。 command 也就是 make 需要执行的命令。(任意的 Shell 命令)
示例:
优化
我们发现在写makefile时有大量文件名重复,我们可以使用三条规则对其进行优化。
1.使用变量
2.使用环境变量(指定搜索路径)
3.隐式推导
上边的例子经过优化后的代码为