我正在使用 MinGW 在 Windows 上编译一些东西。我打电话mingw32-make
直接来自cmd.exe
一切(我需要的)都工作正常。但是我发现我需要能够从 MSYS 环境进行编译,并且我遇到了问题copy
and del
命令不被识别。我知道只需将它们替换为cp
and rm
,但我想对这两种情况使用单个 makefile。
有没有办法强制msys环境调用系统del
and cp
命令?
或者更好的是,有没有办法区分 makefile 是否被调用cmd.exe
或者msys?我可以为命令设置适当的变量。这将非常有帮助,因为我可以删除其他一些重复的 makefile。
任何帮助表示赞赏。
Thanks
EDIT:让事情变得更加困难:mingw32-make
似乎正在使用sh.exe
如果在运行时在 PATH 中找到cmd.exe
。这有一组完全不同的环境变量。
EDIT:好的,如果有人仍然感兴趣,我最终得到了以下文件,我将其包含到我的其他 Makefile 中:
ifeq ($(OS),Windows_NT)
RM = del /Q /F
CP = copy /Y
ifdef ComSpec
SHELL := $(ComSpec)
endif
ifdef COMSPEC
SHELL := $(COMSPEC)
endif
else
RM = rm -rf
CP = cp -f
endif
如果没有,并且您仍然认为这是一个重复的问题,我当然可以删除这个问题。
由于我不知道的原因ComSpec
and COMPSPEC
做出改变。
我和你遇到了同样的情况。我将MSYS目录添加到PATH环境变量中,效果很好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)