Android高级-NDK-C++MakeFile走读与语法基础
1:什么是makefile
1:Makefile:定义
makefile定义了一系列的规则来制定,哪些文件需要先编译,哪些文件需要重新编译,如何进行链接等操作
makefile就是“自动化编译”,告诉make命令如何编译和链接
2:Makefile里面有什么:
1:显示规则
2:隐晦规则
3:变量定义
4:文件指示(引用 指定makefile有效部分)
5:注释//只有行注释
3:Makefile的规则
makefile的规则其实就是告诉make两个规则,文件的依赖关系以及如何生成目标文件
也就是说 target依赖于一个或者多个prerequisities文件,他的生成规则定义在command中,
如果prerequisities中如果有一个以上的文件比target要新的话,targer就会被认为是过时的,需要重新生成,那么command就会 被执行。这就是makefile的规则
4:Makefile实例
第一行表示要生成一个目标可执行文件,她依赖两个目标文件,main.o,tool.o
第二行 注意gcc前有tab键 表示生成目标的命令
第三行:clean 表示是一个伪目标
第四行:定义clean标签,是一个伪目标--不是生成文件。
第五行 clean目标的命令 表示清除main.o的可执行文件
5:makefile是如何工作的
默认范式下,输入make命令后:
1 make会再当前目录下找名字叫"Makefile或者“makefile”的文件
2 如果找到,他会找文件中第一个目标文件target,并吧这个target作为最终目标文件,如前面实例中的“main”
3 如果main文件不存在,或者main所依赖的.o文件的修改时间要比main文件要新,那么他会执行后面所定义的命令来生成mian 文件
4 如果main所依赖的.o文件也存在,那么make会在当前文件夹中找目标为.o的文件的依赖性,如找到规则则根据规则生成.o文 件
5 make再用.o文件声明make终极任务,也就是执行文件"main“
6:makefile中使用变量
这里的变量就是objects
7:makefile中如何引用其他的Makefile
$还原符号
8 环境变量 MAKEFILES
MAKEFILES
9:Makefile预定义变量
10:Makefile的自动变量
11 Makefile函数
12: make的工作流程
1-5 第一阶段
6-7 第二阶段