• 举例分析 Makefile 中的 filter 与 filter-out 函数


    $(filter pattern…,text)

    Returns all whitespace-separated words in text that do match any of the pattern words, removing any words that do not match. The patterns are written using ‘%’, just like the patterns used in the patsubst function above.

    The filter function can be used to separate out different types of strings (such as file names) in a variable. For example:

    sources := foo.c bar.c baz.s ugh.h
    foo: $(sources)
            cc $(filter %.c %.s,$(sources)) -o foo
    

    says that foo depends of foo.c、bar.c、baz.s and ugh.h but only foo.c、bar.c and baz.s should be specified in the command to the compiler.

    $(filter-out pattern…,text)

    Returns all whitespace-separated words in text that do not match any of the pattern words, removing the words that do match one or more. This is the exact opposite of the filter function.

    For example, given:

    objects := main1.o foo.o main2.o bar.o
    mains   := main1.o main2.o
    

    the following generates a list which contains all the object files not in ‘mains’:

    $(filter-out $(mains),$(objects))
    
  • 相关阅读:
    NeatUpload 同时选择并上传多个文件
    前言
    11:连续出现的字符(1.9)
    06笨小猴(1.9)
    05:最大值和最小值的差(1.9)
    02:输出最高分数的学生姓名(1.9)
    04:谁拿了最多奖学金(1.9)
    03 不高兴的津津(1.9)
    01:查找特定的值(1.9)
    1813(2.1)
  • 原文地址:https://www.cnblogs.com/GyForever1004/p/8797850.html
Copyright © 2020-2023  润新知