phony 详解_phoning翻译

phony 详解_phoning翻译phony详解1:一个目标,可以产生target文件,也可以不产生target文件echo目标就不产生echo文件不产生文件,则每次makeecho。都将执行recipe。因为make总是妄图产生一个比temp更新的target–echo文件。echo:temp@echo”$(shellls-ltemp)”2:一个目标,可以

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

phony 详解

1: 一个目标,可以产生target文件,也可以不产生target文件

echo目标就不产生echo文件

不产生文件,则每次make echo。都将执行recipe。

因为make总是妄图产生一个比temp更新的target–echo文件。

echo: temp


@echo “$(shell ls -l temp)”



2:一个目标,可以有依赖,也可以没有依赖。

clean目标,就没有依赖。

没有依赖,有2种情况。

一个是target是个文件,则target永远是最新的。target的recipe永远不会被执行。(参见3)

一个是target不能被make生成,则target的recipe永远要执行。(参见1)

clean就是一个没有文件的taget,则make clean需要每次执行recipe。

clean:


rm *.o

如果目录下面,恰好有个文件叫做clean

则clean永远是最新的。make clean每次都不会执行任何动作。

3: 为防止target和目录下面文件重名,则引入.PHONY: 就是让目标永远执行。

PHONY的意义就是,这个目标对应的文件是不需要生成的。只是为了执行一组动作。

就算有和target重名的文件,也忽略不管。

4: 改善性能

已知phony 目标并非是由其它文件生成的实际文件,make 会跳过隐含规则搜索。这就是声明phony 目标会改善性能的原因,即使你并不担心实际文件存在与否。

也就是说对于phony目标,make会乖乖的执行recipe,不会去管隐含规则那一套。因为它知道,对于phony目标。目的就是为了执行recipe. 不是妄图产生什么文件,或者中间文件。


5: PHONY使用2个必要条件


target没有依赖

target不生成对应的文件


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215557.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 1192啥意思_拓扑排序怎么排

    1192啥意思_拓扑排序怎么排由于无敌的凡凡在2005年世界英俊帅气男总决选中胜出,Yali Company总经理Mr.Z心情好,决定给每位员工发奖金。公司决定以每个人本年在公司的贡献为标准来计算他们得到奖金的多少。于是Mr.Z下令召开 m 方会谈。每位参加会谈的代表提出了自己的意见:“我认为员工 a 的奖金应该比 b 高!”Mr.Z决定要找出一种奖金方案,满足各位代表的意见,且同时使得总奖金数最少。每位员工奖金最少为100元,且必须是整数。输入格式第一行包含整数 n,m,分别表示公司内员工数以及参会代表数。接下来 m

    2022年8月10日
    3
  • java heap space 什么意思_java内存溢出之Java heap space

    java heap space 什么意思_java内存溢出之Java heap space作为一个java程序员,大家都应该认识JVM。JVM作为java的核心,实在太重要了。而内存溢出又是程序员常遇到的错误之一,如果你对JVM的原理足够了解,那么解决这样的问题就不在是一件困难的事情。关于内存溢出,一般有下面这八个症状,本文将说明引发特定错误的原因,提供了可能导致此类错误的代码示例,并提供了解决方案的修复准则,希望对做开发的小伙伴能有一定的帮助。本篇是第1小篇。OutOfMemoryE…

    2022年7月9日
    20
  • Glance安装以及验证

    Glance安装以及验证一 Glance 搭建步骤 1 安装 Glance 包 2 初始化数据库 3 配置 Glance nbsp nbsp 数据库 nbsp nbsp keystone 认证信息 4 启动 Glance 二验证 keystone 可用 root controller0 keystonerc root controller0 keystonetoke get 如果输出正常 则 keystone 正常 三安装 Glance 包 root c

    2025年9月12日
    2
  • 汇编语言转换成C语言软件_archlinux

    汇编语言转换成C语言软件_archlinux从ARMv8-A开始出现了64位的ARM指令集:Aarch64。

    2022年10月16日
    5
  • Hive学习之Hive数据类型

    Hive学习之Hive数据类型Hive到0.13.0版本为止已经支持越来越多的数据类型,像传统数据库中的VCHAR、CHAR、DATE以及所特有的复合类型MAP、STRUCT等。Hive中的数据类型可以分为数值类型、字符串类型、日期时间类型、复合类型以及其它类型,下面分别予以介绍。数值类型Hive中的数值类型与Java中的数值类型很相似,区别在于有些类型的名称不一样,可以概括为如下的表格:类型名称

    2022年9月21日
    3
  • ubuntu 小技巧

    ubuntu 小技巧

    2021年4月29日
    257

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号