当前位置:网站首页>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》
边栏推荐
- 内部类、static关键字、final
- [Fine talk] Using native js to implement todolist
- js实现一个 bind 函数
- VSO Downloader Ultimate 5.0.1.45 中文多语免费版 在线视频下载工具
- PotPlayer实现上班摸鱼电视自由
- Tributyl-mercaptophosphane "tBuBrettPhos Pd(allyl)" OTf), 1798782-17-8
- Alienware上线首个数字时装AR试穿体验
- 1094 谷歌的招聘 (20 分)
- 【HMS core】【Ads Kit】Huawei Advertising——Overseas applications are tested in China. Official advertisements cannot be displayed
- shell脚本循环语句
猜你喜欢

High availability, two locations and three centers

Ali cloud object storage oss private barrels to generate links

嵌入式-I2C-物理电路图

在树莓派上搭建属于自己的网页(1)

Common fluorescent dyes to modify a variety of groups and its excitation and emission wavelength data in the data

集合框架知识
![[Harmony OS] [ARK UI] ETS context basic operations](/img/40/d5924477c42e2b3246eb212f4be534.png)
[Harmony OS] [ARK UI] ETS context basic operations

Secondary development of WinForm controls

1. 两数之和

Tag stack - stack monotonically preparatory knowledge - lt. 739. The daily temperature
随机推荐
2017-06-11 Padavan 完美适配newifi mini【adbyby+SS+KP ...】youku L1 /小米mini
-查找数-
[Harmony OS] [ArkUI] ets development graphics and animation drawing
Kaggle(四)Scikit-learn
typescript47-函数之间的类型兼容性
JDBC与连接池
建造者模式(Builder Pattern)
1. 两数之和
idea使用@Autowired注解爆红原因及解决方法
3n+1问题
Alienware上线首个数字时装AR试穿体验
嵌入式-I2C-物理电路图
Ali cloud object storage oss private barrels to generate links
-飞机大战-
1060 爱丁顿数 (25 分)
typescript49-交叉类型
Fluorescent marker peptides FITC/AMC/FAM/Rhodamine TAMRA/Cy3 / Cy5 / Cy7 - Peptide
Modelarts第一次培训
-一尺之棰-
3. 无重复字符的最长子串