我正在使用 MinGW 在 Windows 上编译一些东西。我mingw32-make
直接打电话cmd.exe
,一切(我需要的)工作正常。但是我发现我需要能够从 MSYS 环境编译,并且我遇到了无法识别的问题copy
和命令。del
我知道只需将它们替换为cp
and rm
,但我想在这两种情况下都使用单个 makefile。
有没有办法强制 msys 环境调用系统del
和cp
命令?
或者更好的是,有没有办法区分 makefile 是从cmd.exe
还是 msys 调用的?比我可以为命令设置适当的变量。这会很有帮助,因为我可以删除其他一些重复的 makefile。
任何帮助表示赞赏。
谢谢
编辑:让事情变得更加困难:mingw32-make
如果sh.exe
在 PATH 中找到从cmd.exe
. 这具有完全不同的环境变量集。
编辑:好的,如果有人仍然感兴趣,我最终得到了以下文件,我将其包含在我的其他 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
并COMPSPEC
有所作为。