伪目标就是总是被执行的目标,相对于目标来说,伪目标不会去考虑它的依赖的时间戳与自己时间戳的新旧关系,从而决定是否执行规则。伪目标格式:

.PHONY:clean

clean:
-rm *.o

在makefile里面通常会将clean这个目标指定为伪目标,这个目标有个特性就是无依赖,那么每次make clean的时候都会执行它的规则:-rm *.o,那么为什么要指定为伪目标,平时看到的makefile都是把它当中一般目标。假设不指定clean为伪目标,我当前文件夹下有1个文件:

a.c。我的makefile:

 all:
gcc a.c -o clean
clean:
rm clean

执行make后,就生成了clean这个可执行文件,假设现在我想要清除生成的文件,就执行make clean,结果提示:

  make: “clean”是最新的。

这是因为将clean作为一个普通目标来处理,根据make自动规则推导,它本打算执行:gcc clean.c -o clean,结果发现找不到依赖clean.c,它就认为clean是最新的什么都不做。如果加上:

.PHONY:clean

来声明为伪目标,那么它就不管什么依赖不依赖,全都强制执行。

最新文章

  1. 基于SVN的项目管理——集中与分散
  2. double函数和int函数
  3. JDBC 增删查改
  4. .className = "highlight";.setAttribute("class", "highlight");
  5. HDFS的java操作方式
  6. U_boot 的 bootcmd 和bootargs参数详解
  7. LayoutInflater的获取与使用
  8. BOOST中如何实现线程安全代码
  9. Number of Containers(数学) 分类: 数学 2015-07-07 23:42 1人阅读 评论(0) 收藏
  10. 网站的SEO以及它和站长工具的之间秘密(转)
  11. Masonry布局框架的使用
  12. v-if与v-show的使用
  13. [LeetCode] 24. 两两交换链表中的节点
  14. React Router v4 页面传值的三种方法
  15. JavaScript中的DOM及相关操作
  16. TestNg学习
  17. Celery 在Windows下启动worker时出现错误:ValueError: not enough values to unpack (expected 3, got 0)
  18. Codeforces Round #425 (Div. 2) B. Petya and Exam(字符串模拟 水)
  19. Java操作memcache
  20. oracle ORA-01722:无效数字 记录

热门文章

  1. 较友好的Web文件下载用户体验实例
  2. chrome修改UserAgent,调试
  3. csharp:Nhibernate Procedure with CreateSQLQuery and GetNamedQuery
  4. FL2440驱动添加(2): RTC(Real time clock)
  5. Win764位配置Github环境及将代码部署到Github pages-志银强势总结
  6. 在Android设备上判断设备是否支持摄像头
  7. spring事件通知机制详解
  8. Android性能优化之一:ViewStub
  9. Exchange Server 2013 一步步安装图解
  10. 3.0之后在LinearLayout里增加分割线