zoukankan      html  css  js  c++  java
  • Makefile之“=”、":="、“+=”、“?=”

    Makefile之“=”、":="、“+=”、“?=”中几个的区别:

    1.”=“符号

     =表示个变量赋值;

    注意:

     当变量A被赋值给变量B时(B=A),这里A可以的这条指令之前定义的,也可以是这条指令之后定义的;

     但:最终变量B的值取决于Makefile最后的赋值;

     例如:

     x = 1
     y = $(x)
     x = 2
     all:
       ehco $(y)

     最后输出的结果是2

    2.":="符号

     :=也是变量赋值符号;

    注意:

     当变量A被赋值给变量B时(B=A),这里变量A必须是这条指令之前定义的;

    例子:

    B := $(A) bar
    A := MY
    all:
      @echo $(B) 

    输出的结果是:bar

    B = $(A) bar
    A = MY
    all:
      @echo $(B) 

    输出的结果是:MY bar

    这就是“=”和“:=”的区别;

    3.“+=”符号

     符号意义:继续添加等号后面的值

    4.“?=”符号

     B ?= A

     符号意义:变量B没有被定义,则执行赋值;

          变量B如果在这指令之前已经被定义,则这条语句不执行;

    A =3
    B = 2
    B ?= $(A) all: echo $B

    输出的结果是2

    A =3
    B ?= $(A)
    all:
        echo $B

    输出的结果是3

      

  • 相关阅读:
    LeetCode Flatten Binary Tree to Linked List
    LeetCode Longest Common Prefix
    LeetCode Trapping Rain Water
    LeetCode Add Binary
    LeetCode Subsets
    LeetCode Palindrome Number
    LeetCode Count and Say
    LeetCode Valid Parentheses
    LeetCode Length of Last Word
    LeetCode Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/weiyouqing/p/8660635.html
Copyright © 2011-2022 走看看