1、Makefile的规则
target... : prerequisites ...
command
...
...
-------------------------------------------------------------------------------
target也就是一个目标文件,可以是Object File,也可以是执行文件。
prerequisites就是,要生成那个target所需要的文件或是目标。
command也就是make需要执行的命令。(任意的Shell命令)
这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。说白一点就是说,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。这就是Makefile的规则。也就是Makefile中最核心的内容。
(1) make 命令会在当前目录下查找以 Makefile(makefile 其实也可以)命名的文件。
(2)当找到 Makefile 文件以后就会按照 Makefile 中定义的规则去编译生成最终的目标文件。
(3) 当发现目标文件不存在,或者目标所依赖的文件比目标文件新(也就是最后修改时间比目标文件)晚的话就会执行后面的命令来更新目标。
2、Makefile 变量
Makefile 中的变量都是字符串
Makefile 中变量的引用方法是“$(变量名)”
在使用其他变量给新的变量赋值时,下面几个赋值运算符有所区别:
赋值符“=” : 变量的真实值取决于它所引用的变量的最后一次有效值
赋值符“:=” :不会使用后面定义的变量,只能使用前面已经定义好的
赋值符“?=”:如果前面已经赋过值了,那么就使用前面赋的值