嵌入式Linux开发工具C语言 Makefile的编写

工程管理器make

1、什么是工程?----如何编写Makefile文件
多个源文件+其他文件(图片+头文件+脚本文件)

2、工程管理器的作用->自动编译
编译多个源文件------------gcc+所有源文件 -o 可执行文件

3、make的依赖Makefile文件

4、Makefile文件是一种脚本文件(批处理),存在相关语法;

5、Makefile语法
三要素:目标、依赖、命令
格式
目标:依赖
tab 命令

目标:最终生成的文件
依赖:生成目标时所需要的文件
命令:生成目标时,需要执行的命令

执行顺序:
make:默认从第一个目标体执行
make+目标体:从对应的目标体执行
如果目标体后面依赖的文件是一个目标的话,先执行依赖对应的目标,再执行目标体的命令。

做法

新建一个make-test文件夹,在文件夹里写一个hello.c和makefile文件。

hello.c文件:在这里插入图片描述

makefile文件:
在这里插入图片描述
在这里插入图片描述
此时输入命令make会生成一个hello可执行文件

PS:两种生成hello的方法
在这里插入图片描述

关于执行顺序

真目标都会生成对应的文件,伪目标只会执行对应的命令。

.PHONY是一个特殊工作目标(special target),它用来指定一个假想的工作目标,也就是说它后面的并不是一个实际文件,而且肯定要视为未更新(也就是说条件总是满足,需要处理)

编写makefile文件:其中clean是一个伪目标
在这里插入图片描述

在这里插入图片描述
make+目标:从对应目标开始执行

修改后示例:
在这里插入图片描述

在这里插入图片描述
使make的时候命令不回响,不显示的方式,就是在Makefile每条命令的前面加@。但是缺点是,不知道有没有编译好。
在这里插入图片描述

解决方式就是在命令的下面加@echo make done!命令,在完成以后,系统会显示make done!
在这里插入图片描述
在这里插入图片描述

Guess you like

Origin blog.csdn.net/passwordee/article/details/122467668