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

时间:2016-03-03 22:53:45

标签: c++ opencv cmake raspberry-pi opencv3.0

我尝试在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。

我想将OpenCV与C ++和Code :: Bocks一起使用,我已经安装了它。 我无法在互联网上找到任何解决方案,所以如果smb帮助我,我将非常高兴。 :)忘了说我使用Raspbian Jezzy。

2 个答案:

答案 0 :(得分:10)

首先,我希望你在一个单独的目录中运行CMake 之外的源代码。不这样做真的不推荐

要了解错误消息,您必须了解一下CMake的工作原理。

基本上,当你运行

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

CMake在build dir中生成一个缓存(它是一个名为CMakeCache.txt的简单文件)。此文件包含一些信息,如:

  • sources / path / to / opencv
  • 的路径
  • 构建目录/路径/到/ opencv / build
  • 的路径
  • 使用的CMake Generator(Ninja,Unix Makefiles ......)

如果您重新运行CMake并更改其中一个值,(通过使用不同的参数重新运行cmake,设置其他generotor或移动文件),CMake会抱怨此类消息。

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

答案 1 :(得分:3)

原因是您使用了两个版本的cmake来生成Makefile。

cd /path/to/opencv
rm -rf build
mkdir build
cd build
cmake ..

这将是正常的。