Windows C:\Users\&x27;无法识别为编译opencv for QT的内部或外部命令

Windows C:\Users\&x27;无法识别为编译opencv for QT的内部或外部命令,windows,qt,opencv,cmake,Windows,Qt,Opencv,Cmake,我想为QT编译opencv。我使用这个教程 在步骤8中,我遇到了以下错误: C:\opencv_bin1>mingw32-make [ 0%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/adler32.c.obj 'C:\Users\' is not recognized as an internal or external command, operable program or batch file.

我想为QT编译opencv。我使用这个教程

在步骤8中,我遇到了以下错误:

C:\opencv_bin1>mingw32-make 
[  0%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/adler32.c.obj 
'C:\Users\' is not recognized as an internal or external command,   
  operable program or batch file. 
 3rdparty\zlib\CMakeFiles\zlib.dir\build.make:53: recipe for target
 '3rdparty/zlib/CMakeFiles/zlib.dir/adler32.c.obj' failed                                     mingw32-make[2]: *** [3rdparty/zlib/CMakeFiles/zlib.dir/adler32.c.obj] Error 1  CMakeFiles\Makefile2:269: recipe for target '3rdparty/zlib/CMakeFiles/zlib.dir/all' failed                                                                      mingw32-make[1]: *** [3rdparty/zlib/CMakeFiles/zlib.dir/all] Error 2            makefile:112: recipe for target 'all' failed                                    mingw32-make: *** [all] Error 2    
我认为它来自path变量,但我看不出其中有错误。 有什么想法吗

EDIT
当我使用make而不是mingw32 make时:

用户变量:

C:\opencv\build\x64\vc10\bin\;C:\opencv\build\common\tbb\intel64\vc10\;C:\ffmpeg\bin;C:\op    
ncv\build\x64\vc10\bin\;c:\Program Files\Microsoft Visual Studio    
10.0\Common7\Tools\;C:\jom\jom.exe\;C:\Windows\System32\;C:\Program Files (x86)\CMake  
2.6\bin\;C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin\;C:\Qt\Qt5.0.1\Tools\MinGW\bin\;
    C:\Borland\Delphi7\Bin;C:\Borland\Delphi7\Projects\Bpl\;C:\Inprise\vbroker\bin;C:\Qt\Qt5.0.
1\5.0.1\mingw47_32\bin;C:\Qt\Qt5.0.1\Tools\MinGW\bin;C:\Program Files (x86)\CMake 
2.8\bin\;C:\Windows\System32\;
系统变量:

C:\opencv\build\x64\vc10\bin\;C:\opencv\build\common\tbb\intel64\vc10\;C:\ffmpeg\bin;C:\op    
ncv\build\x64\vc10\bin\;c:\Program Files\Microsoft Visual Studio    
10.0\Common7\Tools\;C:\jom\jom.exe\;C:\Windows\System32\;C:\Program Files (x86)\CMake  
2.6\bin\;C:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin\;C:\Qt\Qt5.0.1\Tools\MinGW\bin\;
    C:\Borland\Delphi7\Bin;C:\Borland\Delphi7\Projects\Bpl\;C:\Inprise\vbroker\bin;C:\Qt\Qt5.0.
1\5.0.1\mingw47_32\bin;C:\Qt\Qt5.0.1\Tools\MinGW\bin;C:\Program Files (x86)\CMake 
2.8\bin\;C:\Windows\System32\;
我下载msys并将其bin文件夹添加到path。现在,当我进入opencv目录并键入make时,它写道:

C:\opencv_Bin>make   
 Microsoft Windows [Version 6.2.9200]  
(c) 2012 Microsoft Corporation. All rights reserved. 

改用
make
(即来自MSYS发行版的版本),并避免将来使用
mingw32 make
(来自MinGW发行版)以避免路径问题。事实上,
mingw32 make
还有其他一些缺陷,包括功能缺失,您肯定不想处理这些问题。摘自MinGW Wiki:

make和mingw32 make有什么区别?

make的“本机”(即:依赖于MSVCRT)端口缺少某些功能,并且由于Win32上缺少POSIX而修改了功能。MSYS发行版中还存在依赖于MSYS运行时的make版本。此端口的操作与make的预期操作更接近,并且在执行过程中带来的麻烦更少。基于此,MinGW开发人员/维护人员/打包人员决定最好重命名本机版本,以便“本机”版本和MSYS版本可以同时出现,而不会发生文件名冲突

因此,您需要让CMake使用
MSYS Makefiles
生成器,而不是
MinGW Makefiles

更新
您的
PATH
环境变量中有一些错误的
make
。只要看看:
Inprise Corp.
,那是什么!@#$?不管它是什么,它绝对不是MSYS
make
。清理您的
路径
,并确保其中包含MSYS
make
。通过运行
make--version
检查它,您将看到以下内容:

GNU Make 3.82.90
Built for i686-pc-msys
Copyright (C) 2010  Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
GNU Make 3.82.90
专为i686 pc msys构建
版权所有(C)2010免费软件基金会。
许可证GPLv3+:GNU GPL版本3或更高版本
这是自由软件:您可以自由更改和重新发布它。
在法律允许的范围内,不存在任何担保。

改用
make
(即来自MSYS发行版的版本),并避免将来使用
mingw32 make
(来自MinGW发行版)以避免路径问题。事实上,
mingw32 make
还有其他一些缺陷,包括功能缺失,您肯定不想处理这些问题。摘自MinGW Wiki:

make和mingw32 make有什么区别?

make的“本机”(即:依赖于MSVCRT)端口缺少某些功能,并且由于Win32上缺少POSIX而修改了功能。MSYS发行版中还存在依赖于MSYS运行时的make版本。此端口的操作与make的预期操作更接近,并且在执行过程中带来的麻烦更少。基于此,MinGW开发人员/维护人员/打包人员决定最好重命名本机版本,以便“本机”版本和MSYS版本可以同时出现,而不会发生文件名冲突

因此,您需要让CMake使用
MSYS Makefiles
生成器,而不是
MinGW Makefiles

更新
您的
PATH
环境变量中有一些错误的
make
。只要看看:
Inprise Corp.
,那是什么!@#$?不管它是什么,它绝对不是MSYS
make
。清理您的
路径
,并确保其中包含MSYS
make
。通过运行
make--version
检查它,您将看到以下内容:

GNU Make 3.82.90
Built for i686-pc-msys
Copyright (C) 2010  Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
GNU Make 3.82.90
专为i686 pc msys构建
版权所有(C)2010免费软件基金会。
许可证GPLv3+:GNU GPL版本3或更高版本
这是自由软件:您可以自由更改和重新发布它。
在法律允许的范围内,不存在任何担保。

我不能告诉你。没有人比你更了解你的环境。你得自己去找。你真的让我吃惊,拜托,你不可能这么坏。。。难道你不知道如何在你的计算机上搜索
make.exe
文件吗?或者,您可以打开MSYS Bash并键入make.exe。make.exe只存在于borland delphi中,nmake存在于qt Folder中。显然,它是borland delphi的
make.exe
,这应该从
路径中删除。我删除了它,现在当我键入make时,它写道:“make”不被识别为内部或外部命令、可操作程序或批处理文件。不,这就是你所需要的,只需获取MSYS即可。我鼓励你们做的一件事,就是了解MSYS和MinGW实际上是什么,为什么你们需要它们,以及它们是什么!一定要这样做,因为你似乎对所有这些东西都很陌生,如果你现在不掌握这些基本知识,事情会变得更难。我不能告诉你。没有人比你更了解你的环境。你得自己去找。你真的让我吃惊,拜托,你不可能这么坏。。。难道你不知道如何在你的计算机上搜索
make.exe
文件吗?或者,您可以打开MSYS Bash并键入make.exe
。make.exe只存在于borland delphi中,nmake存在于qt Folder中。显然,它是borland delphi的
make.exe
,这应该从
路径中删除。我删除了它,现在当我键入make时,它写道:“make”不被识别为内部或外部命令、可操作程序或批处理文件。不,这就是你所需要的,只需获取MSYS即可。我鼓励你们做的一件事,就是了解MSYS和MinGW实际上是什么,为什么你们需要它们,以及它们是什么!一定要这样做,因为你似乎对所有这些东西都很陌生,如果你现在不掌握这些基本知识,事情会变得更难。