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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MyEclipse10 安装SVN插件及SVN插件在MyEclipse10下使用方法

    MyEclipse10 安装SVN插件及SVN插件在MyEclipse10下使用方法在安装MyEclipse10的SVN插件之前,首先得搞清Subversion、Subclipse、Ankhsvn与tortoiseSvn之间的关系。Subversion是一个服务器,主要有VisualSvnSer、Subversion+Apache,其中VisualSvnSer包含了Subversion+Apache,配置很方便,主要是VisualStudio开发管理代码用,Subclips

    2022年7月21日
  • html中iframe自适应高度_设置iframe高度自适应

    html中iframe自适应高度_设置iframe高度自适应h5iframe自适应高度外部div:divposition:relative;width:100%;padding-top:calc(100%*720/1280);border:2pxblacksolid;内部iframe:position:absolute;width:100%;height:100%;top:0;<divstyle=”position:relative;width:100%;padding-top:cal

    2022年10月12日
  • 理解Session State模式+ASP.NET SESSION丢失FAQ [翻译]

    理解Session State模式+ASP.NET SESSION丢失FAQ [翻译]

    2021年7月24日
  • linux 虚拟化技术(主流虚拟化技术)

    虚拟化技术的方法,架构和实现概览级别:中级M.TimJones[mtj@mtjones.com],顾问工程师,Emulex原文:VirtualLinux译:赵珂cn.zhaoke.comhttp://blog.zhaoke.com/45.html2006年12月29日虚拟化技术的应用十分广泛.当前虚拟化技术主要关注于服务器的虚拟化,…

    2022年4月14日
  • c++的发展方向

    c++的发展方向我现在是一名在校大学生,在学校期间自学C++有两年的时间了,看过C++Primer,stl,insideC++model(侯捷翻译的那本),com本质论等… 在学习C++的过程中感觉C++语言本身的确很强大,而且随着学习的深入,我逐渐感到要想在短时间了解这门语言的本质几乎是不可能的.因为我也学习过javaSE的一些东西,感觉就java和C#来说,语言本身不难,不过在底层调用方面有时候就

    2022年4月30日
  • wJa丨Java闭源项目的自动化测试「建议收藏」

    wJa丨Java闭源项目的自动化测试「建议收藏」本文是i春秋论坛作家「Wker」表哥分享的技术文章,文章旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。wJa支持反编译Java生成的jar包文件,整理成语法树,根据调用链进行污点分析

    2022年7月3日

发表回复

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

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