我通过寻找仅在Windows上设置的env变量来解决此问题。
ifdef OS RM = del /Q FixPath = $(subst /,,)else ifeq ($(shell uname), Linux) RM = rm -f FixPath = endifendifclean: $(RM) $(call FixPath,objs/*)
因为%OS%是Windows的类型,所以应该在所有Windows计算机上设置它,但不能在Linux上设置它。
然后,这些块为不同的程序设置变量,并为将正斜杠转换为反斜杠的函数设置变量。
调用外部命令时必须使用$(调用FixPath,path)(内部命令可以正常使用)。您还可以使用类似:
/ := /
然后
objs$(/)*
如果您更喜欢这种格式。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)