5

我正在尝试在 Windows 7(64 位)上使用 Cmake 编译 OpenCV。它将与 Eclipse 和 CDT 一起使用,为此我在某处读到,无论编译器如何,您都必须指定 Unix Makefiles。现在,鉴于我也有 cygwin(对于 Android NDK 的东西),我首先尝试使用它的编译器,并且我成功配置了 CMake 并生成了 makefile,但是当 OpenCV 吐出错误时(关于 ffmpeg 和模块)。所以我切换到了 MinGW(HelloWorld 也很痛苦,无论 PATH 变量设置如何,我都必须指定 MinGW g++ 的完整路径),但现在我什至无法配置 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 冲突?),我将不胜感激。提前致谢!

4

2 回答 2

6

我们在使用“Unix Makefiles”生成器时遇到了同样的问题。我们通过使用“MSYS Makefiles”生成器解决了这个问题(Msys 是 MinGW 周围的 shell 环境,就像 [一个非常小的] cygwin)。

于 2011-03-04T11:12:40.710 回答
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 支持,用于编译 Windows 资源 (*.rc) 文件是最近在 CMake 2.8.4 中添加的。也许您的 MinGW 环境中没有 windres?

于 2011-03-04T11:00:09.170 回答