【发布时间】:2011-03-21 08:57:32
【问题描述】:
我正在使用正斜杠分隔路径组件的每个目录的目标在 Windows 上运行递归生成。如果有人跑
> make foo/bar
它会运行良好。但是如果有人跑
> make foo\bar
它不会找到要构建的目标:
make: Nothing to be done for `foo\bar'.
如果我可以在我的顶级 Makefile 中添加这样的内容,我会很高兴:
MAKECMDGOALS = $(subst \,/,$(MAKECMDGOALS))
但是这样的事情是行不通的。 MAKECMDGOALS 只能读取。或者即使我可以像这样为所有常规目标制作反斜杠目标:
$(DIRS): %: $(subst /,\,%)
但这也行不通。解决这个问题的最佳方法是什么?
【问题讨论】:
-
与其试图成为所有人的万事万物并使您的 Makefile 复杂化,不如教您的用户使用正斜杠。甚至 Windows 也能理解它们……
标签: windows makefile portability gnu-make