1、什么是Makefile

在嵌入式软件开发畛域,应用 make 工具构建开发环境是十分常见的。而要应用 make 工具,就须要编写 Makefile 文件来定义一系列规定,指定须要先编译、后编译以及从新编译的文件。

应用 Makefile 的益处是实现了“自动化编译”,只须要一个 make 命令,整个工程就可能主动编译,大大提高了软件开发效率。

2、Makefile的规定

2.1 命名规定

通常状况下,无论是应用"Makefile"还是"makefile"作为文件名都能够,常见的是应用"Makefile"作为文件名。

当然你也能够应用其余名称(例如"My_makefile")来命名Makefile,但在应用时应该加上-f选项,如:

make -f My_makefile

2.2 书写规定

指标 (target):指的是运行make生成什么,能够是执行文件,还能够是一个标签

依赖(prerequisites) : 要生成那个 target 所须要的文件或是指标

命令(command ):make 须要执行的命令

target : prerequisites    command    # 例如test: test.c    gcc test.c -o test

<font color='red'>留神</font>,命令所在的行必须是以 Tab 结尾。很多初学者容易犯的“低级”谬误是,用空格代替结尾的Tab 键。

3、Makefile的工作原理

3.1 指标文件的生成

先查看生成指标文件所须要的依赖文件是否存在,如果不存在,则先按规定生成依赖文件,再生成指标文件。

例如:

指标文件是test,依赖所有的 ".o" 文件,如果没有检测到"main.o fun.o drv.o" 文件,则依据".o"的依赖规定, 让“main.c fun.c drv.c”文件生成对应的“ .o”文件,

之后再生成test文件

3.2 指标文件的更新

任何一个依赖文件有更新了,或者依赖文件的工夫戳比指标文件新,则从新生成指标文件

以上是对Makefile基础知识的介绍,前面的文章将会联合例子,来介绍Makefile的具体用法。