当前位置:网站首页>Makefile介绍
Makefile介绍
2022-08-03 05:10:00 【El mundo】
程序的编译和链接
一个程序的诞生,
首先要把源文件编译成中间代码文件(编译compile)
然后再把大量的 Object File 合成执行文件,这个动作叫作链接(link)。
简单来说就是:源文件首先会生成中间目标文件,再由中间目标文件生成执行文件。
在编译时,编译器只检测程序语法,函数、变量是否被声明。
如果函数未被声明,编译器会给出一个警告,但依然可以生成 Object File。
而在链接程序时,链接器会在所有的 Object File 中找寻函数的实现,
如果找不到,那到就会报链接错误码(Linker Error)
什么是Makefile
make 命令执行时,需要一个 Makefile 文件,以告诉 make 命令需要怎么样的去编译和 链接程序。
在Makefile中定义了一些规则,用来描述在什么情况下,使用什么命令来构建一个特定的文件(目标文件或者可执行文件)。
Makefile 规则
1)如果这个工程没有编译过,那么我们的所有 C 文件都要编译并被链接。
2)如果这个工程的某几个 C 文件被修改了,那么我们只编译被修改的 C 文件,并重新链接目标程序。
3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的 C 文件, 并重新链接目标程序。
Makefile 执行过程
1、make 命令会在当前目录下查找以 Makefile (makefile 其实也可以) 命名的文件。
2、当找到 Makefile 文件以后就会按照 Makefile 中定义的规则去编译生成最终的目标文件。
3、当发现目标文件不存在,或者目标所依赖的文件比目标文件新(也就是最后修改时间比目标文件晚)的话就会执行后面的命令来更新目标。
参考:
《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.4》
《跟我一起写Makefile》
边栏推荐
猜你喜欢
随机推荐
13.< tag-动态规划和回文字串>lt.647. 回文子串 + lt.516.最长回文子序列
Flask Web 报错:
presto安装部署教程
1094 谷歌的招聘 (20 分)
Object类与常用API
1058 选择题 (20 分)(C语言)
Secondary development of WinForm controls
typescript40-class类的保护修饰符
高效率科研神器——小软件、大能量
Create a tree structure
typescript44-对象之间的类兼容器
第三次HarmonyOS培训
Talking about GIS Data (5) - Geographic Coordinate System
-寻找鞍点-
Djiango第三次培训
-元素之和-
celery工作原理图
ss-3.工程重构
Ali cloud object storage oss private barrels to generate links
User password encryption tool