乐趣区

关于makefile:轻松玩转makefile-基础知识

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

退出移动版