【问题标题】:Cmake can not find local version of opencv on ubuntu 18.04Cmake在ubuntu 18.04上找不到本地版本的opencv
【发布时间】:2018-10-22 13:48:54
【问题描述】:

我有一个版本的 OpenCV ((3.4.1) 编译并安装在 /home/m/locals/opencv 中

/home/m/locals/opencv的内容是:

bin
include
lib
share

我有一个指向这个目录的环境:

echo $OPENCV_ROOT
/home/m/locals/opencv

我有一个尝试将 opencv 添加到项目的 cmake:

 file(TO_CMAKE_PATH $ENV{OPENCV_ROOT} OpenCV_DIR)
 set(BUILD_SHARED_LIBS OFF)
 find_package(OpenCV  COMPONENTS core highgui imgproc imgcodecs videoio photo stitching flann ml features2d calib3d objdetect REQUIRED)

当我运行 cmake 时,我收到了这个错误:

CMake Error at /usr/local/share/OpenCV/OpenCVModules.cmake:399 (message):
The imported target "opencv_core" references the file

     "/usr/local/lib/libopencv_core.so.3.4.0"

   but this file does not exist.  Possible reasons include:

   * The file was deleted, renamed, or moved to another location.

   * An install or uninstall procedure did not complete successfully.

   * The installation package was faulty and contained

      "/usr/local/share/OpenCV/OpenCVModules.cmake"

   but not all the files it references.

我的问题:

  1. 为什么它试图找到 OpenbCV 3.4.0,而我安装的是 3.4.1
  2. 如何修复它并确保它指向正确的 openCV 副本?

【问题讨论】:

  • 什么是“Linux 18.04”? Ubuntu 18,04?
  • 首先检查您的 OpenCV 安装是否包含文件 OpenCVConfig.cmake(可能在 share/ 下)。至于OpenCV_DIR变量,最好设置环境变量(在shell中,调用cmake之前):export OpenCV_DIR=/home/m/locals/opencv。如果你想将OpenCV_DIR设置为CMake变量,它应该引用带有OpenCVConfig.cmake文件的目录,而不仅仅是OpenCV的安装前缀。
  • 看来您之前在/usr/local/ 中安装了一个版本的OpenCV,这就是为什么/usr/local/share/OpenCV 中有一个OpenCVModules.cmake 文件的原因。要么在/usr/local/ 中重新安装 OpenCV,要么确保正确删除所有以前安装的文件。同样正如@Tsyvarev 提到的,正确设置所有环境变量。

标签: c++ opencv cmake


【解决方案1】:

您可以按照@Tsyvarev 的评论执行export OpenCV_DIR=...。但是,它可能会影响其他完全需要 3.4.0 的构建。而是在项目的CMakeLists.txt 中设置变量

set(OpenCV_DIR /home/m/locals/opencv/share/OpenCV)

或者,您可以在运行 cmake 时手动设置变量:

cmake -D OpenCV_DIR=/home/m/locals/opencv/share/OpenCV ..

【讨论】:

    【解决方案2】:

    我通过完全删除 OpenCV 并从源代码构建它解决了这个问题。 This帮我在ubuntu 18.04安装OpenCV 3.3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-12
      • 2018-12-30
      • 2023-02-21
      • 2020-03-01
      • 1970-01-01
      • 2012-02-06
      • 2021-06-04
      • 1970-01-01
      相关资源
      最近更新 更多