GNU Make 处理斜杠的问题
GNU Make 对反斜杠的处理很恶心。用常规方法,你很难弄出单个反斜杠出来。
比如直接写 SLASH = \ 是不可以的,因为 \ 被用来连接下一行的。
而你用 SLASH = \\
会生成两个反斜杠,而不是一个。
这个问题在 BSD Make 里没有,但在 GNU Make 里是个很让人头痛的问题,尤其是你需要做多平台的时候。
虽然 Windows 下,大多数时候,路径名中使用 \\
等同于 \ 。但有的时候也会出些小问题,尤其在做很复杂的模式匹配的时候。
今天我下决心搞清楚这个问题怎么解决,最终 google 到了方法。
定义出单个反斜杠可以曲线救国:
SLASH := $(strip \)
更有甚者,在 GNU Make 中,还可以写
/ := $(strip \)
这样定义的好处是,你可以用 $/ 生成一个路径分割符,而不需要用前面定义的 $(SLASH) 。
Comments
Posted by: 福利工口姬 | (7) April 16, 2014 04:21 PM
Posted by: LI Daobing | (6) March 18, 2009 12:44 PM
Posted by: chu | (5) March 18, 2009 09:40 AM
Posted by: kevinlei | (4) March 18, 2009 12:02 AM
Posted by: jj | (3) March 17, 2009 10:19 PM
Posted by: netcasper | (2) March 17, 2009 09:21 PM
Posted by: LD | (1) March 17, 2009 04:45 PM