Command line Makefile命令行参数与MinGW目录路径混淆

Command line Makefile命令行参数与MinGW目录路径混淆,command-line,mingw,msys,Command Line,Mingw,Msys,我试图运行一个makeall命令,但是我得到了一个非常令人困惑的错误,似乎来自'cl'的参数在MinGW中被误认为是目录路径。我得到的输出: cl /EHsc /MD /nologo /D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS -nologo /O2 -DN DEBUG -DUSE_CBC -DUSE_CLP /D__WIN32__ /Iinclude\\src\\windows /DGFLAGS_DLL_DECL= /DGFLAGS_DLL_DEC

我试图运行一个
makeall
命令,但是我得到了一个非常令人困惑的错误,似乎来自'cl'的参数在MinGW中被误认为是目录路径。我得到的输出:

cl /EHsc /MD /nologo /D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS -nologo /O2 -DN
DEBUG -DUSE_CBC -DUSE_CLP /D__WIN32__ /Iinclude\\src\\windows /DGFLAGS_DLL_DECL=
 /DGFLAGS_DLL_DECLARE_FLAG= /DGFLAGS_DLL_DEFINE_FLAG= /Iinclude /I. -DUSE_GLOP -
DUSE_BOP -c examples\\cpp\\costas_array.cc /Foobjs\\costas_array.obj
这是cl命令,而不是警告和错误(请注意,
cl/EHsc
实际上被误认为是
'C:/MinGW/MSYS/1.0/EHsc'
,等等):

。。。等直到最后出现
致命错误

cl : Command line warning D9024 : unrecognized source file type 'C:/MinGW/MSYS/1
.0/I.', object file assumed
cl : Command line warning D9027 : source file 'C:/MinGW/MSYS/1.0/I.' ignored
cl : Command line warning D9027 : source file 'C:/MinGW/MSYS/1.0/Foobjs/costas_a
rray.obj' ignored
costas_array.cc
examples\cpp\costas_array.cc(27): fatal error C1083: Cannot open include file: '
ortools/base/callback.h': No such file or directory
make: *** [objs\\costas_array.obj] Error 2

如果您能帮助我解释为什么会发生这种情况,我将不胜感激。我在这方面的经验不是很丰富。

是MSYS shell为您做这些翻译,以期对您有所帮助

对于此shell中通常使用的工具,这没有问题,因为参数/选项以
-
-
开头(Unix和/或GNU约定)。只要您需要符合Microsoft选项和标志惯例的命令行工具,它就会开始使用
/

不幸的是,对于原始MSYS,我不知道如何禁用此翻译。但是MSYS2有一个:您只需要设置一个环境变量,例如

export MSYS2_ARG_CONV_EXCL=\*
所以,我的建议是你升级你的工具并使用它

export MSYS2_ARG_CONV_EXCL=\*