相关文章推荐
兴奋的蘑菇  ·  [Python]彭涛Python爬虫训练营 ...·  2 周前    · 
谦和的苦瓜  ·  美国大联盟季后赛规则大改 ...·  4 月前    · 
豪情万千的羽毛球  ·  OpenCV+pythonで機械学習をやって ...·  8 月前    · 
温暖的生菜  ·  猎人野性_修改器补丁_游侠补丁_游侠网·  9 月前    · 
叛逆的脸盆  ·  【手迹手稿里的故事】数学家的美食情缘·  1 年前    · 
Code  ›  Makefile中的字符串替换开发者社区
makefile
https://cloud.tencent.com/developer/article/2339804
好帅的苦咖啡
1 年前
mingjie

Makefile中的字符串替换

前往小程序,Get 更优 阅读体验!
立即前往
腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
mingjie
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > Makefile中的字符串替换

Makefile中的字符串替换

作者头像
mingjie
发布 于 2023-10-13 10:28:19
449 0
发布 于 2023-10-13 10:28:19
举报
文章被收录于专栏: Postgresql源码分析

Makefile中的字符串替换,做下验证和总结。

案例:Makefile Tutotial中一段代码

Makefile Tutotial最后给出了一段makefile,里面OBJS有字符串通配、替换的过程:

Makefile

代码语言: javascript
复制
SRC_DIRS := ./src
BUILD_DIR := ./build
SRCS := $(shell find $(SRC_DIRS) -name '*.cpp' -or -name '*.c' -or -name '*.s')
OBJS := $(SRCS:%=$(BUILD_DIR)/%.o)
    @echo SRCS : $(SRCS)
    @echo OBJS : $(OBJS)

执行

代码语言: javascript
复制
touch aa123zz.c
touch aa332dzz.cpp
touch aa44325drzz.cpp
make

输出

代码语言: javascript
复制
SRCS : ./aa123zz.c ./aa44325drzz.cpp ./aa332dzz.cpp
OBJS : ./build/./aa123zz.c.o ./build/./aa44325drzz.cpp.o ./build/./aa332dzz.cpp.o

(SRCS:%= (BUILD_DIR)/%.o)如何匹配的还是比较困惑,下面做一些实验和总结。

Makefile字符串替换规则

场景一:整体匹配替换

Makefile

代码语言: javascript
复制
SRCS := ./aa123zz.c ./aa44325drzz.cpp ./aa332dzz.cpp
OBJS := $(SRCS:.cpp=.cxx)
    @echo SRCS : $(SRCS)
    @echo OBJS : $(OBJS)

输出

代码语言: javascript
复制
make
SRCS : ./aa123zz.c ./aa44325drzz.cpp ./aa332dzz.cpp
OBJS : ./aa123zz.c ./aa44325drzz.cxx ./aa332dzz.cxx

规则:注意字符串中的空格起到分隔作用,分隔的每一个字符串都会应用下面规则

代码语言: javascript
复制
$(变量名:旧值=新值)

场景二:通配符替换

Makefile

代码语言: javascript
复制
SRCS := ./aa123zz.c ./aa44325drzz.cpp ./aa332dzz.cpp
OBJS := $(SRCS:./aa%zz.cpp=./AA%%ZZ.cxx)
 
推荐文章
兴奋的蘑菇  ·  [Python]彭涛Python爬虫训练营 Python到爬虫工程师视频课 价值4699元 | getfromcode - IT编程课程资源平台
2 周前
谦和的苦瓜  ·  美国大联盟季后赛规则大改 增加外卡轮次并缩短常规赛时长 | 优直播(中国)官网-足球篮球在线直播
4 月前
豪情万千的羽毛球  ·  OpenCV+pythonで機械学習をやってみた③_実践編 | シンギュラリティ・ラボ
8 月前
温暖的生菜  ·  猎人野性_修改器补丁_游侠补丁_游侠网
9 月前
叛逆的脸盆  ·  【手迹手稿里的故事】数学家的美食情缘
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号