• 第4课


    1. makefile中的变量

    (1)makefile 中支持程序设计语言变量的概念

    (2)makefile 中的变量代表文本数据(字符串类型

    (3)makefile 中的命名规则

    变量名可以包含字符 , 数字 , 下划线

    不能包含 ":" , "#" , "="  或 " "

    — 变量名大小写敏感

    2. 变量定义和使用

          

    编程实验:

    #演示变量的使用
    
    CC := g++
    TARGET := hello-world.out
    
    $(TARGET) : func.o main.o
        $(CC) -o $(TARGET) func.o main.o
    
    func.o : func.c
        $(CC) -o func.o -c func.c
    
    main.o : main.c
        $(CC) -o main.o -c main.c
    
    .PHONY : rebuild clean all
    
    rebuild : clean all
    
    all : $(TARGET)
    
    clean :
        rm *.o $(TARGET)
    
        

    运行结果:

      

    3. makefile中变量的赋值方式

    (1)简单赋值(:=)

    — 程序设计语言中的通用的赋值方式

    只针对当前语句的变量有效

      

    (2)递归赋值(=)

    — 递归赋值操作可能影响多个其它变量

    所有与目标变量相关的其它变量都将受到影响

    — 脚本语言也是顺序一句一句执行的,递归赋值会改变与目标变量相关的其它变量

    — 只会影响那些同样是递归赋值的变量

      

    (3)条件赋值(?=)

    如果变量未定义,使用赋值符号中的值定义变量

    如果变量已经定义赋值无效

      

    (4)追加赋值(+=)

    原变量值之后加上一个新值

    原变量与新值之间由空格隔开

      

     编程实验:

    #演示4种变量的定义方式
    
    # ex1
    # x := foo
    # y := $(x)b
    # x := new
    
    # ex2
    # x = foo
    # y = $(x)b
    # x = new
    
    # a = $(b)
    # b = $(c)
    # c = hello-makefile
    
    # ex3
    # x := foo
    # y := $(x)b
    # x ?= new
    
    # ex4
    # x := foo
    # y := $(x)b
    # x += new
    
    .PHONY : test
    
    test :
        @echo "x => $(x)"
        @echo "y => $(y)"
        @echo "a => $(a)"
        @echo "b => $(b)"
        @echo "c => $(c)"

     ex1:

    ex2:

     

    ex3:

     

    ex4:

    3. 小结

    (1)makefile 中支持变量的定义和使用

    (2)makefile 中存在四种变量的赋值方式

      • 简单赋值(:=)

      • 递归赋值(=)

      • 条件赋值(?=)

      • 追加赋值(+=)

  • 相关阅读:
    android_自定义布局
    二叉树_学习笔记
    栈的应用-四则表达式(C#代码实现)
    Android Fragment 生命周期
    Android Fragment之间传值
    Android ArrayAdpater 填充集合
    任务和返回栈
    XML Drawable与9-Patches
    《python语言程序设计》_第一章编程题
    CSS-文本超出部分省略号
  • 原文地址:https://www.cnblogs.com/hoiday/p/9265686.html
Copyright © 2020-2023  润新知