大型项目的开发过程中,往往会划分出若干个功能模块,这样可以保证软件的易维护性。
作为项目的组成部分,各个模块不可避免的存在各种联系,如果其中某个模块发生改动,那么其他的模块需要相应的更新。如果通过手动去完成这个工作的话,对于小型的项目可能还行,但是对于比较大型的项目就几乎是不可能的。
因此Linux 系统提供了一个自动维护和生成目标程序的工具 make,它可以根据各个模块的更改情况去重新编译连接目标代码
Make 工具的作用就是实现编译连接过程的自动化。它定义了一种语言,用来描述源文件、目标文件以及可执行文件之间的关系,通过检查文件的时间戳来决定程序中哪些文件需要更新编译,并发送相应的命令
我们在开发项目的时候,将程序划分为多个模块,分解到不同的文件中之后。当其中的某一部分发生改变之后,因为其他文件的目标源文件已经存在,所以编译器其实不需要编译全部代码来生成新的可执行文件,而只需要编译被改动的源文件,然后连接所有的目标文件就可以了,这在大型的项目开发中是非常重要的,因为这可能将编译时间从几小时缩小到几分钟。这就是Make所能做的。
Makefile文件书写规范
Makefile 文件描述了整个程序的编译、连接规则,主要包括:程序中哪些源文件需要编译以及如何编译,需要创建哪些库文件以及如何创建这些文件,如何产生最终的可执行文件等
基本规则
# 开始的行是注释行
如果一行太长可以用 反斜线 \ 来另起一行,相当于就是一行
Makefile文件的作用是告诉 make工具做什么,多数情况下是如何编译连接一个程序
目标 : 依赖 <tab键>命令