zoukankan      html  css  js  c++  java
  • Makefile foreach(转)

    原文出处:http://blog.csdn.net/cjsycyl/article/details/8064871

    foreach 函数和别的函数非常的不一样。因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell (/bin/sh)中的for语句,或是C-Shell(/bin/csh)中的foreach语句而构建的。它的语法是:


        $(foreach <var>,<list>,<text>)


    这个函数的意思是,把参数<list>;中的单词逐一取出放到参数<var>;所指定的变量中,然后再执行< text>;所包含的表达式。每一次<text>;会返回一个字符串,循环过程中,<text>;的所返回的每个字符串会 以空格分隔,最后当整个循环结束时,<text>;所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。

    所以,<var>;最好是一个变量名,<list>;可以是一个表达式,而<text>;中一般会使用<var>;这个参数来依次枚举<list>;中的单词。举个例子:

        names := a b c d

        files := $(foreach n,$(names),$(n).o)

    上面的例子中,$(name)中的单词会被挨个取出,并存到变量“n”中,“$(n).o”每次根据“$(n)”计算出一个值,这些值以空格分隔,最后作为foreach函数的返回,所以,$(files)的值是“a.o b.o c.o d.o”。

    注意,foreach中的<var>;参数是一个临时的局部变量,foreach函数执行完后,参数<var>;的变量将不在作用,其作用域只在foreach函数当中。

  • 相关阅读:
    今天到了1000分了,庆祝一下
    中文vs2008安装 mvc 1
    火车采集器使用感受
    存储过程中的case用法
    作为开发者的反思
    什么是程序员的优秀品质?
    遇到了乱码的问题(转载)
    利用网址导航站点推广
    国内优秀网址导航站总结 (转载)
    Unable to read local eventlog错误解决(转载)
  • 原文地址:https://www.cnblogs.com/lengbingshy/p/3936116.html
Copyright © 2011-2022 走看看