Linux项目自动化构建工具-Makefile

简介: Makefile介绍Makefile是一个自动化编译工具,写好后,我们只需一个make命令,程序即可完成编译命令,并且可以根据项目需要,决定哪些文件先编译,哪些文件后编译,哪些文件重复编译等等。其中make是一条命令,makefile是一个文件,我们只需按照一定的格式将makefile文件写好即可。

Makefile介绍

Makefile是一个自动化编译工具,写好后,我们只需一个make命令,程序即可完成编译命令,并且可以根据项目需要,决定哪些文件先编译,哪些文件后编译,哪些文件重复编译等等。

其中make是一条命令,makefile是一个文件,我们只需按照一定的格式将makefile文件写好即可。

用例:

  1. 在当前目录下创建一个Makefile/makefile,写上如下代码。


70c7c2d3e67040aca8caf94b92b7dc14.png

使用make命令,即可编译成一个可执行程序。


f3e27181e3144a16a2446f6315c1c798.png

Makefile的使用

依赖关系/依赖方法

依赖关系:该文件依托于谁(根据依赖关系才能形成目标文件)。

依赖方法:依托于依赖关系执行的方法。


9822071cd04140a5828b7043b6c182ed.png

还有一种符号表示的方法:


299d64798eff4294b216ae556aa9e2ab.png

伪目标文件

使用.PHONY修饰的叫做伪目标文件,因为make命令只能执行一个目标文件(从上往下执行),而如果我们想清理文件的话,就需要定义成伪目标文件。

  • 使用 make clean 即可调用。


17692e7783544fb18a43f7431287257d.png

make 工作方式

  1. make会找当前目录下找名字叫做Makefile/makefile的文件
  2. 如果找到,它找文件中的第一个目标文件(target),上例中,它会找mytext文件,把这个文件当作最终的目标文件。
  3. 如果mytext不存在,或者mytext.c依赖关系,比mytext的文件新,那么它会执行对应的依赖方法。
  4. 如果mytext.c的文件不存在,那么会再寻找.c的依赖关系,会一层一层的去寻找(当然自己需要把依赖关系写完整)

如下:

有点像堆栈的过程。


cd05434035714af6ad698190971f41d6.png


eb44c6183c1f42c998e16d46cdf438f1.png

make [命令] 使用方式

如上文所实现的clean命令,只需:

  • make clean 命令即可。

目录
相关文章
|
1月前
|
监控 Unix Linux
Linux系统工具
Linux系统工具
43 6
|
16天前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
38 5
Linux系统之安装Ward服务器监控工具
|
18天前
|
JSON JavaScript Linux
Linux系统之安装cook菜谱工具
【10月更文挑战第15天】Linux系统之安装cook菜谱工具
32 2
Linux系统之安装cook菜谱工具
|
25天前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
117 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
7天前
|
缓存 监控 Linux
Linux性能分析利器:全面掌握perf工具
【10月更文挑战第18天】 在Linux系统中,性能分析是确保软件运行效率的关键步骤。`perf`工具,作为Linux内核自带的性能分析工具,为开发者提供了强大的性能监控和分析能力。本文将全面介绍`perf`工具的使用,帮助你成为性能优化的高手。
35 1
|
7天前
|
缓存 监控 Linux
掌握Linux性能分析:深入探索perf工具
【10月更文挑战第26天】
12 1
|
25天前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
19 2
|
25天前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
48 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
29天前
|
Linux C++
Linux c/c++之makefile的基础使用
Linux下C/C++项目中makefile的基本使用,包括基础、进阶和高级用法,以及如何创建和使用makefile来自动化编译过程。
14 0
Linux c/c++之makefile的基础使用
|
2月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
275 2