3

我正在使用 MinGW 在 Windows 上编译一些东西。我mingw32-make直接打电话cmd.exe,一切(我需要的)工作正常。但是我发现我需要能够从 MSYS 环境编译,并且我遇到了无法识别的问题copy和命令。del我知道只需将它们替换为cpand rm,但我想在这两种情况下都使用单个 makefile。

有没有办法强制 msys 环境调用系统delcp命令?

或者更好的是,有没有办法区分 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

如果不是,你仍然认为这是一个重复的问题,我当然可以删除这个问题。

由于我不知道的原因ComSpecCOMPSPEC有所作为。

4

2 回答 2

1

我和你遇到了同样的情况。我将 MSYS 目录添加到 PATH 环境中,它运行良好。

于 2014-12-03T07:56:11.650 回答
-4

如图添加msys到路径​​:

在此处输入图像描述

于 2017-04-17T22:32:55.037 回答