gcc 与 Makefile

Makefile的引入及规则

为什么要有Makefile

使用keil, mdk, avr等工具开发程序时点点鼠标就可以编译了,
它的内部机制是什么?它怎么组织管理程序?怎么决定编译哪一个文件?
这里使用 gcctest1.ctest2.c 进行编译 汇编 链接(预处理系统默认执行),得到可执行文件test

gcc  test1.c test2.c -o test

可以看到,此方法 简单,
但是会对所有文件都处理一次,
文件多时如果只修改其中一个文件会导致效率低,如果是几万个文件的非常庞大的工程,书写五分钟,编译俩小时

Makefile的核心规则 :

目标 : 依赖1 依赖2 …
[TAB]命令当"目标文件"不存在,

某个依赖文件比目标文件"新",
则: 执行"命令"
这里的 就是比较依赖文件和目标文件的生成时间。很显然,如果我们修改了一个文件,那么改文件相对于之前处理过的文件就会更新,这个时候就可以单单对这一个文件重新编译了,节省了大量时间,提高了效率,这就是Makefile的核心规则

编写Makefile

废话少说,直接开干
首先我们创建两个.c文件
分别命名为test1.c 和 test2.c

test1.c :

gcc 与 Makefile_第1张图片

test2.c:

就定义一个变量就好了
在这里插入图片描述
然后编写Makefile如下

Makefile:

gcc 与 Makefile_第2张图片

测试一下

gcc 与 Makefile_第3张图片

gcc 与 Makefile_第4张图片

以上内容参考了韦东山老师的文档,在此表示感谢

你可能感兴趣的:(嵌入式linux学习笔记)