C:\ Users \'不被识别为编译opencv for QT的内部或外部命令

时间:2013-05-15 19:27:33

标签: windows qt opencv cmake

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

http://www.laganiere.name/opencvCookbook/chap1s1_2.shtml

在步骤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    

我认为它来自路径变量,但我没有看到它的错误。 任何想法?

EDIT

当我使用make而不是mingw32-make时: enter image description here

path variables:

用户变量:

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文件夹添加到路径。现在,当我进入opencv目录并输入make it write:

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

1 个答案:

答案 0 :(得分:1)

改为使用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

更新


您的make环境变量中有一些错误PATH。看看:Inprise Corp.,那是什么!@#$?无论是什么,它绝对不是MSYS make。清理PATH并确保其中包含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.