zoukankan      html  css  js  c++  java
  • GNU make manual 翻译( 一百五十六)

    继续翻译

    6.3 Advanced Features for Reference to Variables
    ================================================
    
    This section describes some advanced features you can use to reference
    variables in more flexible ways.
    
    6.3.1 Substitution References
    -----------------------------
    
    A "substitution reference" substitutes the value of a variable with
    alterations that you specify.  It has the form `$(VAR:A=B)' (or
    `${VAR:A=B}') and its meaning is to take the value of the variable VAR,
    replace every A at the end of a word with B in that value, and
    substitute the resulting string.
    
       When we say "at the end of a word", we mean that A must appear
    either followed by whitespace or at the end of the value in order to be
    replaced; other occurrences of A in the value are unaltered.  For
    example:
    
         foo := a.o b.o c.o
         bar := $(foo:.o=.c)
    
    sets `bar' to `a.c b.c c.c'.  *Note Setting Variables: Setting.
    
       A substitution reference is actually an abbreviation for use of the
    `patsubst' expansion function (*note Functions for String Substitution
    and Analysis: Text Functions.).  We provide substitution references as
    well as `patsubst' for compatibility with other implementations of
    `make'.
    
       Another type of substitution reference lets you use the full power of
    the `patsubst' function.  It has the same form `$(VAR:A=B)' described
    above, except that now A must contain a single `%' character.  This
    case is equivalent to `$(patsubst A,B,$(VAR))'.  *Note Functions for
    String Substitution and Analysis: Text Functions, for a description of
    the `patsubst' function.
    
    For example:
    
         foo := a.o b.o c.o
         bar := $(foo:%.o=%.c)
    
    sets `bar' to `a.c b.c c.c'.

    6.3 变量参照的高级功能
    ================================================

    这一节描述你可以用来更加灵活地参照变量的高级功能。

    6.3.1 替换参照
    -----------------------------

    一个替换参照用你指定的变化,来替换一个变量的值。它的格式是 $(VAR: A=B) (或 ${VAR:A=B}),并且它的含义是把变量 VAR的值,在其中所有单词末尾A的值换成B的值,然后替换整个结果字符串。

    当我们说 在单词的末尾,我们指的是 A 必须出现在空格之后或则会再一个要替换的值得末尾;其他位置不处理,例如:

    foo := a.o b.o c.o
    bar := $(foo:.o=.c)

    设置 bar 的值为 a.c b.c c.c ,*Note Setting Variables:  Setting.

    一个替换参照实际上是patsubst 扩展函数的缩略词(*note Functions for String Substitution and Analysis: Text Functions.)。我们提供patsubst ,也提供替换参照是为了和其他版本make的兼容性。

    另一个类型的替换参照让你使用patsubst 函数的完整威力。它有着和 $(VAR:A=B) 一样的格式,除了现在A 必须包含一个单独的 %符号。这个场合下等同于 $(patsubst A,B,$(VAR))。 想要查看patsubst 函数的说明,参照 *Note Functions for String Substitution and Analysis: Text Functions.

    例如:

    foo := a.o b.o c.o
    bar := $(foo:%.o=%.c)

    把 `bar' 设置为 'a.c b.c c.c'.

    后文待续

  • 相关阅读:
    JQuery -- this 和 $(this) 的区别
    js动态生成表格
    Sublime 3 如何使用列编辑模式
    新版Sublime text3注册码被移除的解决办法
    Sublime text 3 格式化HTML/css/js/json代码 插件
    mingw64 构建 Geos
    C++调用Python浅析
    linux下挂载VHD等虚拟磁盘文件
    linux 下Qt WebEngine 程序打包简单记录
    C++ UTF8和UTF16互转代码
  • 原文地址:https://www.cnblogs.com/gaojian/p/2710849.html
Copyright © 2011-2022 走看看