• makefile使用笔记(二)变量


    By francis_hao    Oct 30,2017

     

    makefile中可以使用变量,变量有多种类型,下面分别介绍

    简单变量

    简单变量的命名规则和c语言一致。

    给变量赋值就表示创建了这个变量,使用变量时需使用$()或${}这样的形式。

    变量的赋值有几种不同的形式

    =

    递归扩展的变量赋值,仅当在变量被使用的时候才去扩展。变量可以先使用后赋值

    例如:

    a=$(b)

    b=$(c)

    c=d

    在一系列的赋值过后,a的值就是$(b)。

    只有在使用a的时候,才会一步步的扩展a=$(b)=$(c)=d

    :=

    简单扩展的变量赋值,变量立即扩展,变量需要先赋值再使用

    例如:

    a=$(b)

    b=$(c)

    c=d

    在一系列的赋值过后,a的值是'',也就是空。因为在执行a=$(b)的时候,就要立即扩展,而此时b还没有被赋值,也就是空的。

    ?=

    如果变量之前没有被定义,则执行赋值操作,否则什么也不做

    +=

    追加变量值

    如果变量之前没有被定义过,那么+=自动变成=。

    如果变量之前有过赋值操作,就进行追加赋值,赋值属性继承之前的赋值操作(=/:=)

     

     

    自动化变量

    自动化变量是指符合某一规则或模式的值

    $@

    表示规则中的目标

    $<

    依赖目标中的第一个目标文件??

    $?

    所有比目标新的依赖,以空格分隔

    $^

    所有的依赖目标的集合,以空格分隔,若有重复只保留一份。

    $+

    所有的依赖目标的集合,以空格分隔,不去除重复的

    $*

    表示目标模式中%及其以前的部分,abcd.v -> %.v ->abcd

    make可以识别一些常见的后缀名,比如hello.o对应的$*就是hello

     

     


    本文由 刘英皓 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
    转载自:http://www.cnblogs.com/yinghao1991/p/7757822.html

     

     

    参考

    【1】 跟我一起写Makefile 陈皓 http://blog.csdn.net/haoel/article/details/2886/

  • 相关阅读:
    前端大文件上传方法(深度好文)
    windows版idea 2018.3.5版 永久激活教程
    性能优化随笔
    使用java画一张海报
    Gson杂记录
    Gson转Map时,Int会变成double解决方法
    浅析VO、DTO、DO、PO的概念、区别和用处
    SpringCloud框架搭建+实际例子+讲解+系列五
    raid总结
    MD5与SHA1
  • 原文地址:https://www.cnblogs.com/yinghao-liu/p/7757822.html
Copyright © 2020-2023  润新知