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 的具体用法。