【问题标题】:Can't compile c++ program with OpenCV. OpenCVConfig.cmake file missing无法使用 OpenCV 编译 c++ 程序。缺少 OpenCVConfig.cmake 文件
【发布时间】:2019-07-07 12:05:14
【问题描述】:

尝试从 CLion 和终端运行我的简单 cpp 程序,但到处都有同样的问题:

By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "OpenCV", but
  CMake did not find one.

  Could not find a package configuration file provided by "OpenCV" with any
  of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake

  Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
  "OpenCV_DIR" to a directory containing one of the above files.  If "OpenCV"
  provides a separate development package or SDK, be sure it has been
  installed. 

尝试了一些解决方案,但没有任何帮助。 OpenCV 安装在 macOS 上的用户目录中。有人可以帮我吗?

【问题讨论】:

  • 您是如何准确安装 OpenCV 的?
  • @MarkSetchell 通过终端...使用自制软件、python3 并安装虚拟环境和 cmake
  • 你的 cmake 命令是什么?错误消息告诉您,您需要将 OpenCV 的安装前缀添加到 CMAKE_PREFIX_PATH。这意味着您的 cmake 命令应包含 -DCMAKE_PREFIX_PATH=<path to opencv>
  • 你可以找到@Richard所指的文件find /usr /Users -iname "OpenCVConfig.cmake" 2> /dev/null

标签: c++ macos opencv cmake


【解决方案1】:

当我尝试运行我在不同系统上编写的程序时,我在 Windows 中遇到了类似的 CLion 问题。为了解决这个问题,我必须“从源导入项目”,这样 CLion 才能为 Make 生成所有必要的文件。

我通过导入后弹出的对话框导入现有程序。

这是我的简单 GCD c++ 终端程序,在我按照 CLion 要求的方式导入存储库之前:

在我选择 import CLion 后生成了本地编译所需的所有文件:

我希望这会有所帮助,一旦我导入了我的程序,CLion 就会做其他所有事情。我为 c++11 修改了我的 CMakeList.txt 文件,因为我需要知道我的程序在 11 上按预期编译。CLion 默认为我的 c++14。

【讨论】:

    【解决方案2】:

    错误消息清楚地说明了如何解决它:首先,找到上述文件之一(OpenCVConfig.cmakeopencv-config.cmake)在您的系统上的位置。该路径将是/path/to/configfile。然后相应地设置OpenCV_DIR 变量。

    可以通过两种方式设置变量:

    • 命令行:cmake -DOpenCV_DIR=</path/to/configfile> <any additional arguments>
    • CLion 设置:见下图(取自previous post)。但不是 -DENABLE_TESTS=ON 而是将 -DOpenCV_DIR=</path/to/configfile> 添加到 CMake 选项中:

    【讨论】:

      【解决方案3】:

      正如错误消息所说:

        Could not find a package configuration file provided by "OpenCV" with any
        of the following names:
      
          OpenCVConfig.cmake
          opencv-config.cmake
      
        Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
        "OpenCV_DIR" to a directory containing one of the above files.
      

      因此查找文件OpenCVConfig.cmake 并在您的CMakeLists.txt 文件中将变量OpenCV_DIR 设置为包含OpenCVConfig.cmake 文件的目录。

      就我而言,我从源代码安装了 opencv。我安装opencv的目录结构如下

      opencv-installation-directory/
        - bin/
        - include/
        - lib/
        - share/
          - OpenCV/
            - OpenCVConfig.cmake
      

      所以我在CMakeLists.txt 中添加了以下行:

      set(OpenCV_DIR opencv-installation-directory/share/OpenCV)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-22
        • 1970-01-01
        相关资源
        最近更新 更多