这一个章节我们主要讲的是 Makefile 中的伪目标。所谓的伪目标可以这样来理解,它并不会创建目标文件,只是想去执行这个目标下面的命令。伪目标的存在可以帮助我们找到命令并执行。使用伪目标有两点原因:

  • 避免我们的 Makefile 中定义的只执行的命令的目标和工作目录下的实际文件出现名字冲突。

  • 提高执行 make 时的效率,特别是对于一个大型的工程来说,提高编译的效率也是我们所必需的。

我们先来看一下第一种情况的使用。如果需要书写这样一个规则,规则所定义的命令不是去创建文件,而是通过 make 命令明确指定它来执行一些特定的命令。实例:

clean:

rm -rf *.o test

规则中 rm 命令不是创建文件 clean 的命令,而是执行删除任务,删除当前目录下的所有的 .o 结尾和文件名为 test 的文件。当工作目录下不存在以 clean 命令的文件时,在 shell 中输入 make clean 命令,命令 rm -rf *.o test 总会被执行 ,这也是我们期望的结果。 如果当前目录下存在文件名为  clean 的文件时情况就会不一样了,当我们在 shell 中执行命令 make clean,由于这个规则没有依赖文件,所以目标被认为是最新的而不去执行规则所定义的命令。因此命令 rm 将不会被执行。为了解决这个问题,删除 clean 文件或者是在 Ma

make: *** 没有规则可制作目标“distclean”。 停止。_Makefile伪目标相关推荐

  1. linux 建立伪目标过程,linux之Makefile 编写、规则、伪目标、变量

    什么是Makefile?首先,make是一个工具程序(Utility software),是一种控制编译或者重复编译软件的工具:make可以自动管理软件编译的内容.方式和时机从而使程序员能够把精力集中 ...

  2. .PHONY makefile中的伪目标

    拿clean举例,如果make完成后,自己另外定义一个名叫clean的文件,再执行make clean时,将不会执行rm命令. 为了避免出现这个问题,需要.PHONY: clean ========= ...

  3. Makefile的伪目标

    1.Makefile伪目标的格式: .PHONY : cleanclean:rm xxxx 2.Makefile伪目标的作用: 第一种情况: 如果我们需要书写这样的一个规则:规则所定义的命令不是去创建 ...

  4. 第2天.make的学习(第二部分)对伪目标的理解

    一.目标,依赖,命令 也许大家觉得这个不重要,但今天我有了新的认识,所以写了下来.这三个就是Makefile的全部,但今天我要重点说一下它的执行顺序.每个Makefile都有且只有一个终极目标,下设若 ...

  5. 【Makefile由浅入深完全学习记录3】伪目标的引入

    只有不停的努力,才能看起来很轻松!!!加qq1126137994共同学习探讨更多技术!!! 1.思考: makefile中的目标究竟是什么? 在默认的情况下: make认为目标对应一个文件 make比 ...

  6. makefile之伪目标(6)

    伪目标是这样一个目标:它不代表一个真正的文件名,在执行make时可以指定这个目标来执行其所在规则定义的命令,有时我们也可以将一个伪目标称为标签.使用伪目标有两点原因:1. 避免在我们的Makefile ...

  7. make[2]: *** 没有规则可制作目标“/home/.../src/viewer.cpp”,需求。 停止... recipe for target ‘.....‘failed问题解决

    在学习PCLVisualizer可视化时,遇到了以下问题,浪费了我好多时间,希望可以帮到大家: 1.问题描述 1.1. 很多未定义 1. 2.没有规则可制作目标问题 2.问题解决 分析:就是CMake ...

  8. Makefile3、书写规则(文件搜寻、伪目标、多目标、静态模式、自动生成依赖性)

    第三部分.书写规则 规则包含两个部分,一个是依赖关系,一个是生成目标的方法.在 Makefile 中,规则的顺序是很重要的,因为,Makefile 中只应该有一个最终目标,其它的目标都是被这个目标所连 ...

  9. 小学计算机课总目标,小学信息技术课堂教学目标的确定与实现

    <江苏省义务教育信息技术课程指导纲要>中指出:义务教育阶段信息技术课程的总体目标是培养学生的信息素养. "信息素养"的概念是1974年美国学者提出的.信息素养包括三个层 ...

最新文章

  1. 美国物理超级计算机,美国科学家在物理学的一个分支领域朝着开发超级计算机迈进了一步。这一分支领域研究的是人眼看不见的粒子。...
  2. linux 远程访问
  3. 分布式从mysql查数据_技术分享 | 从库数据的查找和参数 slave_rows_search_algorithms...
  4. fork、vfork、wait、waitpid
  5. 《给年青数学人的信》:为何学数学?
  6. JVM(三)——对象的访问定位
  7. pandas拉长dataframe
  8. C#对象序列化与反序列化zz
  9. hp linux还原系统还原,酷越一键备份还原(惠普电脑系统还原)精简美化版...
  10. ab变频器22b用户手册_AB变频器22B-D4P0N104
  11. 公务员面试综合分析真题解析3
  12. scl函数C语言,SCL语言基本语法规则:表达式
  13. 苹果微信更新不了最新版本_微信登录提示版本过低 微信登录不了的解决办法...
  14. amoeba mysql mmm_MMM+Amoeba搭建MySQL高可用负载均衡群集
  15. 如何使用前端css代码去掉百度地图左下角的图标
  16. 记一次服务器被攻击后的经历
  17. 【XGBoost】第 7 章:使用 XGBoost 发现系外行星
  18. Chrome 浏览器 Javascript 调试参考
  19. 根据年份判断属相php,自动算出生肖属相的c程序编写程序,输入一个年份,判断该年属相.(提示switch-case......
  20. android简易记账,简单记账(便捷快速记账)

热门文章

  1. 【杭州】Hack for Cloud Beginner微软黑客松大赛
  2. ASP.NET Core MVC I\/O编程模型
  3. 如何利用.NET Core搭建跨平台的控制台应用程序
  4. .NET的一点历史故事:招兵买马和聚义山林
  5. 发力企业级市场,微软Hololens开辟了一条VR新道路
  6. 02.CSS基础笔记及导入
  7. Python3.6学习笔记(三)
  8. 【经典回放】多种语言系列数据结构算法:二叉树(C#版)
  9. C和指针之字符串实现strrstr函数
  10. 超形象!著名的三角不等式演示动图!