[问题] makefile patsubst 反斜线问题

楼主: anoymouse (没有暱称)   2021-03-29 18:09:21
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\\ 所以就算没有在%的前面的反斜线还是会被跳脱啊???
谢谢
作者: LPH66 (-6.2598534e+18f)   2021-03-30 15:47:00
你要往前看一小段, 它说有可能会跳脱 % 的 \ 才能再次跳脱所以最后一段才说不是那种 \ 的通通保留不动它也就是说, 可能当做跳脱字符的 \ 只有堆在 % 前面的 \
楼主: anoymouse (没有暱称)   2021-04-06 17:52:00
所以\%pattern的%就是wildcard了 不是跳脱的%字符 对吗

Links booklink

Contact Us: admin [ a t ] ucptt.com