makefile的结构
makefile的意义
makefile用于定义源文件之间的依赖关系(在阅读开源软件源码时,可给根据makefile掌握源码之间的关系),同时说明如何编译各个源文件并生成可执行程序。
makefile的规则
makefile规则的定义
形式1:targets :prerequisites; command
形式2:targets : prerequisites
'\t' command
makefile规则中各元素的含义
targets目标:通常是需要生成的目标文件名,make所需执行的命令名称
prerequisities依赖:完成目标所需要执行的命令(系统自动命令 PATH环境变量、用户命令 自己指定路径)
规则中的注意事项
targets可以包含多个目标,需要使用空格进行分隔,依赖也可以这样,每一个命令行必须以[Tab]字符开始
工程开发中可以将最终执行的文件名和all同时作为makefile中第一条规则的目标。但最终可执行文件要放在all之前,make默认使用多个目标中的首个目标。这样做的好处是当默认执行make时,make自行判断依赖关系有没用发生更新,如果没用就不会重新编译程序。如果这里all作为目标,由于不存在all这个文件每次执行make时,第一条规则的命令总会被执行,这与实际不符,如果强制编译该程序,执行make all即可