1

我想为 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 时: 在此处输入图像描述

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 时,它​​写道:

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

1 回答 1

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。通过 running 进行检查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.
于 2013-05-15T20:11:27.650 回答