zoukankan      html  css  js  c++  java
  • makefile中的伪目标

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

    .PHONY:clean
    
    clean:
        -rm *.o

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

    a.c。我的makefile:

    1 all:
    2     gcc a.c -o clean
    3 5 clean:
    6     rm clean

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

      make: “clean”是最新的。

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

    .PHONY:clean

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

  • 相关阅读:
    合并n个链表
    合并2个链表
    删除链表中的倒数第n个元素
    判断字符串是否回文字符串
    回文链表
    反转链表
    反转链表2
    冒泡排序法
    编译datax(3.x版本)踩的坑,记录修改记录
    Python基本知识(6)——集合
  • 原文地址:https://www.cnblogs.com/thammer/p/4456584.html
Copyright © 2011-2022 走看看