解读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 工具会尝试去构建这个同名文件,而不是执行我们期望的动作。通过将目标声明为伪目标,可以避免意外地触发同名文件的构建。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

某有赞滑块验证码

⚠️前言⚠️ 本文仅用于学术交流。 学习探讨逆向知识,欢迎私信共享学习心得。 如有侵权,联系博主删除。 请勿商用,否则后果自负。 网址 aHR0cHM6Ly9wYXNzcG9ydC55b3V6YW4uY29tL2xvZ2luL3Bhc3N3b3Jk 1. 首先来分析一下参数 1_1. get-beh…

@ConfigurationProperties结合Nacos配置动态刷新之底层原理分析

Hello,我是大都督周瑜,本文给大家分析一下ConfigurationProperties结合Nacos配置动态刷新的底层原理,记得点赞、关注、分享哦! 公众号:IT周瑜 应用背景 假如在Nacos中有Data ID为common.yml的配置项: m…

上海一儿童写真馆摄影师大量售卖女童照片!当你的肖像权或隐私权被侵犯时应如何写起诉状?

上海一儿童写真馆摄影师大量售卖女童照片!当你的肖像权或隐私权被侵犯时应如何写起诉状? 近日,上海市一儿童写真馆摄影师被指大量售卖女童的照片和特写花絮。对此, 上海市公安局徐汇分局发布了警情通报(见下图&#x…

VLDB ’25 最后 6 天截稿,58 个顶会信息纵览;ISPRS 城市分割数据集上线

「顶会」板块上线 hyper.ai 官网啦!该板块为大家提供最新最全的 CCF A 类计算机顶会信息,包含会议简介、截稿倒计时、投稿链接等。 你是不是已经注册了顶会,但对截稿时间较为模糊,老是在临近 ddl 时才匆忙提交;又或者…

K8s 部署prometheus

文章目录 K8s 部署prometheuskube-prometheus 部署部署流程安装卸载补充 K8s 部署prometheus kube-prometheus 部署 kube-prometheus 是 github 上开源的整合了 prometheus alertmanager granfana 等监控工具的项目,github地址 如果github 访问不了的也可以选择 g…

day20二叉树part06| 654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

**654.最大二叉树 ** 构造树一般采用的是前序遍历&#xff0c;因为先构造中间节点&#xff0c;然后递归构造左子树和右子树。 这题在找最大值和最大值下标的时候用了两个库函数 class Solution { public:TreeNode* constructMaximumBinaryTree(vector<int>& nums)…

Dropzone 4 for Mac:一拖即达,文件处理更高效!

在繁忙的工作中&#xff0c;你是否曾因频繁切换应用程序和文件夹而烦恼&#xff1f;Dropzone 4 for Mac&#xff0c;这款强大的文件拖拽操作工具&#xff0c;将彻底改变你的工作方式&#xff01; 只需简单地将文件、文本或图片拖放到Dropzone图标上&#xff0c;即可快速执行各种…

独孤思维:你做副业一定比我牛比

01 做副业&#xff0c;尤其是做ip&#xff0c;千万不要害羞。 要有不要脸的精神。 时时刻刻&#xff0c;都要想着如何展示自己&#xff0c;曝光自己。 不停地在各个平台上去输出内容&#xff0c;不停地直播&#xff0c;不停地发短视频。 就像独孤一直发文章&#xff0c;一…

6. CSS动画技巧

在前端开发中&#xff0c;动画可以极大地提升用户体验&#xff0c;使网页更加生动和互动。本章将探讨CSS3中高级动画技巧&#xff0c;包括复杂动画的实现、动画的延迟与序列控制、多步骤动画与状态切换以及动画性能优化。 6.1 复杂动画的实现 复杂动画通常涉及多个属性的变化…

Java NIO.2(New I/O) API的关键类和功能[简单示例]

Java NIO.2&#xff08;New I/O&#xff09;是Java SE 7引入的一组用于处理I/O操作的新API。它在Java标准库中提供了更灵活、高效的文件和文件系统操作方式&#xff0c;相对于传统的Java I/O&#xff08;java.io&#xff09;包&#xff0c;Java NIO.2提供了更多的功能和更好的性…

mysql实战——Mysql8.0高可用之双主+keepalived

一、介绍 利用keepalived实现Mysql数据库的高可用&#xff0c;KeepalivedMysql双主来实现MYSQL-HA&#xff0c;两台Mysql数据库的数据保持完全一致&#xff0c;实现方法是两台Mysql互为主从关系&#xff0c;通过keepalived配置VIP&#xff0c;实现当其中的一台Mysql数据库宕机…

NB55 牛的生长情况

描述 在一个牧场中&#xff0c;有n头牛&#xff0c;每头牛的体重都在增长。给定一个整数数组weights&#xff0c;表示每天的牛的平均体重&#xff0c;返回一个数组growth&#xff0c;其中growth[i]是指对于第i天&#xff0c;下一个平均体重更高的是在几天后。如果在这之后平均…

AI大模型的推理显存占用分析

了解Transformer架构的AI大模型显存占用是非常重要的&#xff0c;特别是在训练和推理过程中。以下是详细解释和分析这些组成部分及其影响的专业描述&#xff1a; 1 显存占用 1.1 模型本身参数 模型的参数包括所有的权重和偏置项&#xff0c;这些参数需要存储在显存中&#x…

四川景源畅信:新人做抖店的成本很高吗?

随着社交媒体的兴起&#xff0c;抖音成为了一个新兴的电商平台——抖店。不少创业者和商家看中了其庞大的用户基础&#xff0c;想要通过开设抖店来拓展销路。然而&#xff0c;对于刚入行的新手来说&#xff0c;成本问题总是让人犹豫不决。究竟新人做抖店的成本高不高?本文将围…

ML307R OpenCPU TCP使用

一、TCP通信流程 二、示例 三、TCP通信代码 一、TCP通信流程 ML307R TCP 是使用LWIP的标准的socket通信,具体TCP流程可以自行百度 二、示例 实验目的:实现把接收的数据再发送到服务端 测试网址:TCP电脑端测试网址 因为是4G,所以必须用外网的 /* 测试前请先补充如下…

Flutter 中的 CupertinoDatePicker 小部件:全面指南

Flutter 中的 CupertinoDatePicker 小部件&#xff1a;全面指南 在 Flutter 中&#xff0c;CupertinoDatePicker 是 Cupertino 组件库的一部分&#xff0c;它提供了一个 iOS 风格的日期选择器。这个选择器允许用户选择日期和时间&#xff0c;非常适合需要符合 iOS 设计指南的应…

YOLOv10:实时端到端目标检测

Ao Wang Hui Chen∗  Lihao Liu Kai Chen Zijia Lin  Jungong Han Guiguang Ding Tsinghua University Corresponding Author. 文献来源&#xff1a;中英文对照阅读 摘要 在过去的几年里&#xff0c;YOLO 因其在计算成本和检测性能之间的有效平衡而成为实时目标检测领…

纯干货:做好数据库防泄密的关键

在当今数字化时代&#xff0c;数据库的安全与保密性对于企业和个人来说至关重要。数据库防泄密工作涉及到多种技术和策略&#xff0c;其中沙盒技术作为一种强大的安全机制&#xff0c;为数据库防泄密提供了新的可能性。那么&#xff0c;我们是否可以通过沙盒来实现数据库防泄密…

2024年5月22日 (周三) 叶子游戏新闻

《奇星协力》Steam抢先体验开启 求生城市建造Leikir Studio工作室开发的一款求生城市建造新游《奇星协力》Steam抢先体验开启&#xff0c;限时九折优惠&#xff0c;本作支持中文&#xff0c;感兴趣的玩家可以关注下了。 《原神》预告4.7版本前瞻特别节目 5月24日播出5月22日&am…

Qt 控件提升

什么是控件提升(Widget Promotion) 控件提升是一个在Qt编程中常见但容易被忽视的概念。简单来说,控件提升就是将一个基础控件(Base Widget)转换为一个更特定、更复杂的自定义控件(Custom Widget)。这样做的目的是为了在设计界面时能够使用更多高级功能,而不仅仅是Qt库提…