Makefile字符串处理函数详解

需积分: 33 5 下载量 7 浏览量 更新于2024-09-21 收藏 43KB DOC 举报
"Makefile常用函数表" 在Makefile中,函数是用于处理文本和控制构建过程的关键元素。以下是对给定的Makefile常用函数的详细说明: 1. **$(subst FROM,TO,TEXT)** - **函数名称**:字符串替换函数—`subst` - **函数功能**:这个函数在文本`TEXT`中查找所有出现的`FROM`子字符串,并将其替换为`TO`。 - **返回值**:替换操作后的新的字符串。 - **示例**:`$(subst old,new,text_with_old)`会将`text_with_old`中的所有`old`替换为`new`。 2. **$(patsubst PATTERN,REPLACEMENT,TEXT)** - **函数名称**:模式替换函数—`patsubst` - **函数功能**:此函数根据模式`PATTERN`在`TEXT`中搜索单词,将匹配的模式替换为`REPLACEMENT`。`%`字符可以作为通配符,代表任意数量的字符。 - **返回值**:经过模式替换后的新字符串。 - **示例**:`$(patsubst %.c,%.o,srcs)`将`srcs`中所有以`.c`结尾的单词替换为`.o`。 3. **$(strip STRINT)** - **函数名称**:去空格函数—`strip` - **函数功能**:该函数移除字符串`STRINT`首尾的空格和制表符,并合并连续的空格或制表符为单个空格。 - **返回值**:处理后的字符串,没有前导或尾随空格,且内部的连续空格被压缩为单个空格。 - **示例**:`$(strip whitespace string )`将返回`whitespace string`,移除了首尾和连续的空格。 4. **$(findstring FIND,IN)** - **函数名称**:查找字符串函数—`findstring` - **函数功能**:在字符串`IN`中查找`FIND`,如果找到,返回`FIND`;否则返回空字符串。 - **返回值**:如果`FIND`在`IN`中,返回`FIND`,否则返回空。 - **示例**:`$(findstring hello,world hello)`将返回`hello`,因为它在`world hello`中找到了`hello`。 5. **$(filter PATTERN…,TEXT)** - **函数名称**:过滤函数—`filter` - **函数功能**:这个函数在`TEXT`中查找所有与`PATTERN`匹配的单词,返回这些匹配的单词。`PATTERN`通常包含通配符`%`,并且可以接受多个模式。 - **返回值**:一个由`TEXT`中匹配`PATTERN`的单词组成的空格分隔的字符串。 - **示例**:`$(filter %.cpp %.cc,sources)`将返回`sources`中所有以`.cpp`或`.cc`结尾的单词。 这些函数在Makefile中用于处理文本、筛选文件列表、生成目标文件名等任务,极大地增强了Makefile的灵活性和实用性。正确理解和使用这些函数,可以使Makefile更加高效地管理项目构建。