在Windows和类Unix系统之间有区别的Makefile

在Windows和类Unix系统之间有区别的Makefile,第1张

在Windows和类Unix系统之间有区别的Makefile

我通过寻找仅在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$(/)*

如果您更喜欢这种格式。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5009734.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存