【发布时间】: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.
我的问题:
- 为什么它试图找到 OpenbCV 3.4.0,而我安装的是 3.4.1
- 如何修复它并确保它指向正确的 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 提到的,正确设置所有环境变量。