Я собрал OpenCV v4.2 из исходного кода и установил его на /usr/local
. Файл OPENCVConfig.cmake
находится в каталоге /usr/local/lib/cmake/opencv4
:
paul@paul-desktop:/usr/local/lib/cmake/opencv4$ dir
OpenCVConfig.cmake OpenCVConfig-version.cmake OpenCVModules.cmake OpenCVModules-release.cmake
Вот мой файл CMakeLists.txt
с отчаянными попытками удовлетворить find_package
:
cmake_minimum_required(VERSION 3.16.2)
project(af VERSION 0.1.0 LANGUAGES CXX)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_BUILD_PARALLEL_LEVEL 4)
set(CMAKE_PREFIX_PATH /usr/local/lib/cmake/opencv4)
set(ENV{OPENCV_DIR} /usr/local/lib/cmake/opencv4)
set(OPENCV_DIR /usr/local/lib/cmake/opencv4)
find_package(OPENCV REQUIRED)
add_executable(af main.cpp)
, который приводит к этой ошибке:
[build] CMake Error at CMakeLists.txt:12 (find_package):
[build] By not providing "FindOPENCV.cmake" in CMAKE_MODULE_PATH this project has
[build] asked CMake to find a package configuration file provided by "OPENCV", but
[build] CMake did not find one.
[build]
[build] Could not find a package configuration file provided by "OPENCV" with any
[build] of the following names:
[build]
[build] OPENCVConfig.cmake
[build] opencv-config.cmake
[build]
[build] Add the installation prefix of "OPENCV" to CMAKE_PREFIX_PATH or set
[build] "OPENCV_DIR" to a directory containing one of the above files. If "OPENCV"
[build] provides a separate development package or SDK, be sure it has been
[build] installed.
Когда я открываю CMakeCache.txt
с помощью cmake-gui
и вручную устанавливаю OPENCV_DIR
на /usr/local/lib/cmake/opencv4
, я получаю ту же ошибку, и OPENCV_DIR
становится OPENCV_DIR-NOTFOUND
.
Что здесь происходит? Мне кажется, что я выполняю требования, перечисленные в сообщении об ошибке, и любой полезный совет, который я мог бы найти в ответах на подобные проблемы.
Я не уверен, имеет ли это значение, но там /usr/share/OpenCV/OpenCVConfig.cmake
принадлежит другая версия OpenCV.