欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Makefile由浅入深完全学习记录1】认识make和makefile

程序员文章站 2022-05-13 15:09:21
...

今天开始学习项目又多了一项:Makefile由浅入深完全学习。之前做嵌入式Linux时,就一直在用make,但是对Makefile的理解一直都处于表面,看一些大型的代码工程的Makefile,也基本上只能看懂一点,索性,就来深入学习一下Makefile。

1、什么是make?为什么需要make?

make是一个应用程序

*make的作用:

  • 解析源码程序之间的依赖的关系
    很多源码程序的文件是非常多的,而且那些文件之间大多是有依赖关系的,make就是可以解析这些依赖的关系
  • 根据依赖关系自动维护编译工作
    因为在我们编译大型源码的时候,需要编译很多的程序,加入我们的程序在编译到一大半的时候,有一个程序报错停止编译了,那么我们就需要改错,然后重新make,重新make后,它会自动从上次编译报错的地方接着编译,而不需要从头开始编译,这样就可以节省很多时间!!

  • 执行宿主操作系统中的各种命令
    Makefile其实可以理解为一种脚本,里面大多是执行相关宿主操作系统的命令

2、什么是Makefile?

Makefile是一个描述文件

Makefile的作用:

  • 定义一系列的规则来指定源文件的编译顺序
  • 拥有特定的语法规则,支持函数定义和函数调用
  • 能够直接集成操作系统中的各种命令

3、make和Makefile之间的关系

Makefile中的描述用于指导make程序如何完成工作 ;make根据Makefile中的规则执行命令,完成编译输出。
【Makefile由浅入深完全学习记录1】认识make和makefile

下面给一个最简单的make示例让我们理解一下:
【Makefile由浅入深完全学习记录1】认识make和makefile

注意: 目标后的命令,用tab键隔开!!!

make程序的使用示例:

make -f mf.txt hello

说明:以hello关键字作为目标查找mf.txt文件,并执行hello处的命令。

上面的使用方法较为复杂,一般情况下我们是这样使用的:

make hello

功能说明:
以hello关键字作为目标查找Makefile或者makefile文件,并执行hello处的命令

或者:

make
功能说明:
直接查找makefile或者Makefile文件中,最顶层目标,并执行最顶层目标的命令。

4、编程示例

下面是一个简单的Makefile文件:


hello :
    echo "hello Makefile"

test :
    echo "test"
    pwd
    ls

执行make命令显示:
【Makefile由浅入深完全学习记录1】认识make和makefile
可见,当执行make命令时,他会直接调用顶层目标处相应的命令。

执行命令make tsst显示:
【Makefile由浅入深完全学习记录1】认识make和makefile
可见,当指定要执行的目标后,就会执行指定位置的目标所对应的命令!!!

5、总结

  1. make只是一个特殊功能的应用程序
  2. make用于根据指定的目标执行相关的命令
  3. Makefile用于定义目标和实现目标所需要的命令
  4. Makefile有特定的语法规则,支持函数的定义和调用

想一起探讨以及获得各种学习资源加我(有我博客中写的代码的原稿):
qq:1126137994
微信:liu1126137994
可以共同交流关于嵌入式,操作系统,C++语言,C语言,数据结构等技术问题。

本学习记录完全来源于狄泰软件学院的相关课程,可以加我q:1126137994或者Q群:199546072 ,给你推荐更多学习课程。

相关标签: make Makefile