构建OpenCV时出现CMake错误 - CMakeLists不匹配。

15

我试图在我的 Raspberry Pi 2B 上构建 OpenCV 3.1.0,但不幸的是,当我运行以下命令时:

cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=OFF \ -D INSTALL_PYTHON_EXAMPLES=OFF /home/pi/Downloads/opencv-3.1.0

我收到了以下错误:

CMake错误:源“/home/pi/Downloads/opencv-3.1.0/CMakeLists.txt”与用于生成缓存的源“/home/pi/Downloads/opencv-3.1.0/modules/CMakeLists.txt”不匹配。请使用另一个源目录重新运行cmake。

我想使用已经安装的 C++ 和 Code::Blocks 来使用 OpenCV。 我在互联网上找不到任何解决方案,所以如果有人能帮助我,我将非常感激。我正在使用 Raspbian Jezzy。

2个回答

31

首先,我希望您在单独的目录中运行CMake,而不是在源代码目录中运行。不这样做真的不被推荐。

要理解错误消息,您需要了解一点CMake的工作原理。

基本上,在运行以下命令时:

cd /path/to/opencv
mkdir build
cd build
cmake ..

CMake在构建目录中生成一个缓存(一个简单的名为CMakeCache.txt的文件)。该文件包含一些信息,例如:

  • 源代码路径 /path/to/opencv
  • 构建目录路径 /path/to/opencv/build
  • CMake生成器使用的类型(Ninja、Unix Makefiles等)

如果您重新运行CMake并更改这些值之一(通过使用不同的参数重新运行cmake,设置其他生成器或移动文件),则CMake将会显示此类消息。

一个好的解决方案是删除CMakeCache,甚至整个构建目录以确保安全。


2
就像你所说的那样,解决方案是删除构建文件夹。感谢您的帮助 :) - 3Qax
2
我正在Windows上使用CMake GUI。除了删除构建目录外,我还需要(或仅需要)在GUI中激活“文件>删除缓存”。 - gebbissimo
当一个CMakeCache.txt文件被放置在我的c:目录的根目录时,我遇到了这个问题。 - C.J.

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接