c++ 构建OpenCV时CMake错误- CMakeLists不匹配

cetgtptt  于 2023-05-19  发布在  其他
关注(0)|答案(2)|浏览(225)

我尝试在我的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,我已经安装。我在网上找不到任何解决办法,所以如果有人能帮助我,我会非常感激。我使用Raspbian Jezzy。

xdnvmnnf

xdnvmnnf1#

首先,我希望你在你的源代码之外运行CMake**,在一个单独的目录中。不这么做真的不推荐
要理解错误消息,您必须了解一点CMake的工作原理。
基本上,当你跑步的时候

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

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

  • 源文件的路径/path/to/opencv
  • 构建目录的路径/path/to/opencv/build
  • 使用的CMake生成器(Ninja,Unix Makefile...)

如果你重新运行CMake并改变了其中一个值,(通过使用不同的参数重新运行cmake,设置另一个generotor或移动文件),CMake将抱怨这种消息。
一个好的解决方案是删除CMakeCache,甚至整个构建目录以确保安全。

sy5wg1nm

sy5wg1nm2#

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

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

那就好办了。

相关问题