作者anoymouse (没有昵称)
看板C_and_CPP
标题[问题] makefile patsubst 反斜线问题
时间Mon Mar 29 18:09:21 2021
Linux Ubuntu
https://imgur.com/0Qbop49
可以解释一下
Backslashes that quote ‘%’ characters or other backslashes are removed from
the pattern before it is compared file names or has a stem substituted into it.
Backslashes that are not in danger of quoting '%' characters go unmolested.
看不懂这两段话真正的含意,反斜线引用%或其他反斜线会在档名比较或stem替代之前
移除? stem是什麽??
既然引用其他反斜线的反斜线会被移除,为什麽又说反斜线没有参与到%的又不会被污染(
不会被移除?
所以结论是 the\%weird\\%pattern\\ -> the%weird\%pattern\\?
新增刚刚的测试
PPP := $(patsubst aasdfBA.c\\\\,aasdfBC.c\\\\, aasdfBA.c\\\\)
PPP 会是aasdfBC.c\\ , A变成C了
但是如果只有PPP := $(patsubst aasdfBA.c\\,aasdfBC.c\\, aasdfBA.c\\\\)
PPP 不变动 还是aasdfBA.c\\ 所以就算没有在%的前面的反斜线还是会被跳脱啊???
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 210.242.38.34 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1617012563.A.923.html
1F:推 LPH66: 你要往前看一小段, 它说有可能会跳脱 % 的 \ 才能再次跳脱 03/30 15:47
2F:→ LPH66: 所以最後一段才说不是那种 \ 的通通保留不动它 03/30 15:47
3F:→ LPH66: 也就是说, 可能当做跳脱字元的 \ 只有堆在 % 前面的 \ 03/30 15:51
※ 编辑: anoymouse (210.242.38.34 台湾), 04/06/2021 17:25:32
4F:→ anoymouse: 所以\%pattern的%就是wildcard了 不是跳脱的%字元 对吗 04/06 17:52
5F:→ anoymouse: 刚刚测试好像就是这样子 04/06 18:41
※ 编辑: anoymouse (210.242.38.34 台湾), 04/07/2021 15:01:19
※ 编辑: anoymouse (210.242.38.34 台湾), 04/07/2021 15:02:52