在Windows计算机上,makefile正在采用路径选项,并通过附加此路径值来创建另一个文件。
我的问题是路径变量无法在结果文件中正确扩展。
例如
$ make var=c:\test\kernel
通过使用下面的makefile代码,将此$(var)值附加到输出文件中
all:
@sed -i '1 i\export PATH := $(var)' output.txt
预期结果
export PATH := c:\test\kernel
但是我得到了
export PATH := c: estkernel
那么,如何解决Makefile中的这个问题?
答案 0 :(得分:2)
首先,我强烈建议您即使在Windows上也要在路径中始终使用正斜杠,尤其是在使用make时。 Windows上很少有程序不能使用正斜杠(主要是老式的CMD命令等),并且在拥有UNIX起源的工具中使用反斜杠总是不合适的。
针对您的情况,您可以执行以下操作:
all:
@sed -i '1 i\export PATH := $(subst \,\\,$(var))' output.txt
将反斜杠转换为转义的反斜杠。