我正在尝试在Windows 7(64位)上使用Cmake编译OpenCV。它将与Eclipse和CDT一起使用,我在其中阅读了您无论编译器如何都要指定Unix Makefile的地方。 现在,鉴于我也有cygwin(对于Android NDK的东西),我首先尝试使用它的编译器,我成功配置CMake并生成makefile,但只有63%的编译,当OpenCV吐出错误时(关于ffmpeg和HMODULE)。所以我切换到MinGW(带有它的HelloWorld也很痛苦,我不得不指定MinGW g ++的完整路径,无论PATH变量设置如何),但现在我甚至无法配置CMake。我收到以下错误:
The C compiler identification is GNU
The CXX compiler identification is GNU
CMake Error: your RC compiler: "CMAKE_RC_COMPILER-NOTFOUND" was not found. Please set CMAKE_RC_COMPILER to a valid compiler path or name.
Check for working C compiler: C:/MinGW/bin/gcc.exe
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeRCInformation.cmake:22 (GET_FILENAME_COMPONENT):
get_filename_component called with incorrect number of arguments
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/Platform/Windows-GNU.cmake:59 (enable_language)
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/Platform/Windows-GNU-C.cmake:1 (include)
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeCInformation.cmake:56 (INCLUDE)
CMakeLists.txt:2 (PROJECT)
CMake Error: CMAKE_RC_COMPILER not set, after EnableLanguage
CMake Error: Internal CMake error, TryCompile configure of cmake failed
Check for working C compiler: C:/MinGW/bin/gcc.exe -- broken
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:52 (MESSAGE):
The C compiler "C:/MinGW/bin/gcc.exe" is not able to compile a simple test program.
It fails with the following output:
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:47 (project)
Configuring incomplete, errors occurred!
如果有人知道可能存在什么问题(与cygwin shell冲突?),我会感激任何意见。提前谢谢!
答案 0 :(得分:6)
我们遇到了与“Unix Makefiles”生成器相同的问题。我们使用“MSYS Makefiles”生成器解决了它(Msys是MinGW周围的shell环境,就像[一个非常小的] cygwin)。
答案 1 :(得分:3)
此错误消息文字:
CMake Error: your RC compiler: "CMAKE_RC_COMPILER-NOTFOUND" was not found.
Please set CMAKE_RC_COMPILER to a valid compiler path or name.
表示“windres”(对于mingw和基于cygwin gcc的构建树)不在PATH中。
windres支持,最近在CMake 2.8.4中添加了编译Windows资源(* .rc)文件。也许在你的MinGW环境中没有windres?