1、有关Makefile
当你开始准备学Makefile的时候,我想你也就知道Makefile的重要性了。
makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
2、Makefile规则介绍
一个简单的Makefile描述规则组成:
TARGET... : PREREQUISITES...
COMMAND
规则的目标:规则的依赖
规则的命令行
TARGET 规则的目标:可以是.o文件,也可以是最好的可执行程序的文件名等。另外,目标也可以是一个make执行的动作名称,如:“clean ,称这样的目标位伪目标。”
PREREQUISITES 规则的依赖:生成规则所需要的文件名列表。通常一个目标依赖于一个或多个文件。
COMMAND 规则的命令行:是规则所要执行的动作。它限定了make执行这条规则时所需的动作。
!!!注意
必须以【Tab】字符开始。
一个规则可以有多个命令行,每条命令占一行。
一个目标可以没有依赖而只有动作。
书写时可以将一个较长行使用反斜线(\)来分解为多行,这样可以使Makefile,书写清晰,容易理解阅读(反斜线后不能空格)。
默认情况下,make执行的是Makefile中的第一个规则,此规则的第一个目标称之为“最终目的”or"最终目标"。
#:后面的内容为注释。
$:表示变量或者函数的使用,要用“$”符号时,用“$$”。
$^:代表所有的依赖文件
$@:代表目标
$<:代表第一个依赖文件