当前位置: 首页 > news >正文

解读makefile中的.PHONY

在这里插入图片描述
在 Makefile 中,.PHONY 是一个特殊的目标,用于声明伪目标(phony target)。伪目标是指并不代表实际构建结果的目标,而是用来触发特定动作或命令的标识。通常情况下,.PHONY 会被用来声明一组需要执行的动作,例如 clean、all 等,并告诉 Make 工具这些目标并不对应真实的文件,而只是动作的名称。

例如,下面是一个使用 .PHONY 的例子:

makefile

.PHONY: cleanclean:rm -f *.o

在这个例子中,.PHONY 声明了 clean 是一个伪目标,它不代表一个真实的文件,而是用来触发清理操作的动作。当用户执行 make clean 时,Make 工具会执行 rm -f *.o 命令来删除所有的 .o 文件,即使没有真实的 clean 文件存在。

使用 .PHONY 声明伪目标可以避免因为存在同名文件而导致意外的行为,同时也能让 Make 工具知道这些目标并不对应真实文件,从而正确地执行相应的动作。

避免与同名文件产生冲突:如果存在一个与目标同名的文件,且用户误输入了该目标名字,Make 工具会尝试去构建这个同名文件,而不是执行我们期望的动作。通过将目标声明为伪目标,可以避免意外地触发同名文件的构建。
在这里插入图片描述

相关文章:

  • 牛客NC236 最大差值【simple 动态规划 Java/Go/PHP】
  • TypeScript类型体操练习
  • 网络、HTTP、HTTPS、Session、Cookie、UDP、TCP
  • 揭秘Tensor Core黑科技:如何让AI计算速度飞跃
  • mysql8忘记密码重置密码和创建新用户
  • Golang协程和通道
  • 数据结构的希尔排序(c语言版)
  • MySQL 高级 - 第十章 | 性能分析工具的使用
  • springcloud-服务拆分与远程调用
  • 所以研究生有不变胖的吗?
  • 【考研数据结构知识点详解及整理——C语言描述】第一章算法和算法评价
  • 3步骤找回丢失文件!EasyRecovery让你轻松应对数据灾难!
  • C++的第一道门坎:类与对象(二)
  • NoSQL数据库技术与应用 教学设计
  • 代码随想录算法训练营第二十一天 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • CSS 专业技巧
  • JAVA_NIO系列——Channel和Buffer详解
  • Javascript设计模式学习之Observer(观察者)模式
  • Leetcode 27 Remove Element
  • Mocha测试初探
  • MySQL数据库运维之数据恢复
  • Spring-boot 启动时碰到的错误
  • uva 10370 Above Average
  • Vim Clutch | 面向脚踏板编程……
  • Web Storage相关
  • 阿里云购买磁盘后挂载
  • 包装类对象
  • 分布式任务队列Celery
  • 浮现式设计
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 驱动程序原理
  • 数据结构java版之冒泡排序及优化
  • 用element的upload组件实现多图片上传和压缩
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • # Kafka_深入探秘者(2):kafka 生产者
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #include
  • #Z2294. 打印树的直径
  • (14)Hive调优——合并小文件
  • (2)STL算法之元素计数
  • (分布式缓存)Redis持久化
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .net 托管代码与非托管代码
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .net连接MySQL的方法
  • .NET是什么