[問題] 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