Linux项目自动化构建工具:make/Makefile

简介: Linux项目自动化构建工具:make/Makefile

1.make/Makefile简介


1.1Makefile


Makefile是一个文本文件,用于记录一个项目的构建规则


1.2make


make是一个Makefile解释程序,找到当前目录下的Makefile然后逐行解释,执行指令完成项目的构建。


2.Makefile编写规则★


目标对象:依赖对象


[tab]要执行的指令


示例:


在Makefile中写入以下内容:


1.png2.png


2.1伪对象


因为非依赖文件的修改,不会引起目标对象的重新生成,所有引入了伪对象,即被.PHONY:修饰的目标,总是被执行的。


伪对象声明:


.PHONY:伪对象


功能:


表示当前的目标对象,并不是一个需要实际生成的实体目标对象,根本目的是为了解除目标对象与实体之间的关系。常用于项目清理的clean对象。


示例:


3.png


此时尝试重复生成test,会显示已是最新,不会重新执行:


4.png


将其声明为伪对象,再次尝试:



5.png

6.png


每次都会重新执行。


2.2预定义变量


$^


表示所有的依赖对象。


$@


表示目标对象。


$<


表示所有依赖对象中的第一个。


示例:


7.png

8.png


gcc $^ -o $@ 就会被解释为  gcc test.c -o test


3.make解释规则★


· make会根据目标对象和依赖对象的最后一次修改时间来进行判断,判断目标对象是否需要重新生成。


· make后面跟上目标对象名称,表示在Makefile中寻找对应的目标对象生成规则,生成指定目标对象。


· make找到Makefile中的第一个目标对象及生成规则,进行指令执行,生成后就退出;这意味着Makefile中就算有多个目标对象,也只生成第一个。


· make虽然只生成第一个目标对象,但是如果它的依赖对象不存在,它会递归向下寻找依赖对象依赖对象的生成规则,先将依赖对象生成,然后再去生成目标对象。


相关文章
|
2月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
203 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
7月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
427 41
|
6月前
|
NoSQL Linux 开发工具
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
本文介绍了yum 包管理工具、Vim 编辑器、gcc/g++ 编译器、gdb 调试器、编译原理及 Makefile 的使用,同时还配备了如何使用,以及图解。旨在帮助读者更好地理解和应用这些工具与技术。
362 0
|
11月前
|
Rust Ubuntu Java
[Linux工具] Makefile
Makefile是Linux环境下用于自动化编译和链接程序的配置文件,常用于简化大型项目的编译流程。通过定义目标文件、依赖文件及生成命令,Makefile能高效管理编译任务。它不仅适用于C语言项目,还可扩展到其他编程语言和非编程任务中。
[Linux工具] Makefile
|
10月前
|
Unix Linux C语言
【Linux】 Linux makefile 教程
本文详细介绍了 Linux 环境下 Makefile 的基本结构、语法和使用方法,并通过一个简单的 C++ 项目示例演示了 Makefile 的实际应用。Makefile 是一个强大而灵活的工具,通过合理配置,可以极大地简化项目的编译和管理过程,提高开发效率。希望本文能帮助您更好地理解和应用 Makefile,在实际项目中高效管理代码的编译和构建。
716 20
|
10月前
|
Unix Linux C语言
【Linux】 Linux makefile 教程
本文详细介绍了 Linux 环境下 Makefile 的基本结构、语法和使用方法,并通过一个简单的 C++ 项目示例演示了 Makefile 的实际应用。Makefile 是一个强大而灵活的工具,通过合理配置,可以极大地简化项目的编译和管理过程,提高开发效率。希望本文能帮助您更好地理解和应用 Makefile,在实际项目中高效管理代码的编译和构建。
247 16
|
11月前
|
消息中间件 Linux
Linux:进程间通信(共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)
通过上述讲解和代码示例,您可以理解和实现Linux系统中的进程间通信机制,包括共享内存、消息队列和信号量。这些机制在实际开发中非常重要,能够提高系统的并发处理能力和数据通信效率。希望本文能为您的学习和开发提供实用的指导和帮助。
842 20
|
2月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
3月前
|
运维 Linux 网络安全
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
140 4