【问题标题】:CMake error when building OpenCV - CMakeLists not match构建 OpenCV 时出现 CMake 错误 - CMakeLists 不匹配
【发布时间】:2016-06-17 12:26:18
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    首先,我希望您确实在一个单独的目录中您的源代码之外运行 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,甚至删除整个构建目录以确保安全。

    【讨论】:

    • 如你所说,解决办法是删除构建文件夹。感谢您的帮助:)
    • 我在 Windows 中使用 CMake gui。除了删除构建目录之外,我还(或仅?)需要在 GUI 中激活“文件 > 删除缓存”。
    • 当一个 CMakeCache.txt 文件以某种方式放置在我的 c: 目录的顶部时,我遇到了这个问题。
    【解决方案2】:

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

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

    这样就好了。

    【讨论】:

      猜你喜欢
      • 2013-05-25
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      • 2021-05-11
      • 2019-09-04
      • 1970-01-01
      相关资源
      最近更新 更多