Я делаю это впервые, но не смог начать работу с CMake find_package (OpenCV)
OpenCVModules.cmake находится в той же папке, что и OpenCVConfig.cmake, но по некоторым причинам конфигурация CMake завершается неудачно с этой ошибкой.
Я на Windows с использованием Visual Studio Express 2010, CMake v2.8.0 и OpenCV v2.4.9
CMake Error at D:/opencv/mybuild/install/x86/vc10/lib/OpenCVConfig.cmake:49 (include):
include could not find load file:
/OpenCVModules.cmake
Call Stack (most recent call first):
CMakeLists.txt:19 (FIND_PACKAGE)
Мне нужно, чтобы это работало с VS 2010 Express, но я могу выбрать любую совместимую версию CMake и OpenCV для этого проекта.
Я делаю это в CMakeLists.txt, и «OpenCVConfig.cmake» является по умолчанию, который поставляется с OpenCV. Я не изменил это.
SET(OpenCV_DIR "D:/opencv/mybuild")
# this project requires OpenCV, so find it
FIND_PACKAGE( OpenCV )
INCLUDE_DIRECTORIES( ${OpenCV_INCLUDE_DIRS} )
Строка № 49 из OpenCVConfig.cmake выглядит следующим образом
include(${CMAKE_CURRENT_LIST_DIR}/OpenCVModules${OpenCV_MODULES_SUFFIX}.cmake)
Любая помощь в правильном направлении очень ценится. Благодарю.
Update1:
если я изменю строку # 49 жестким кодированием пути, это работает!
include(D:/opencv/mybuild/OpenCVModules${OpenCV_MODULES_SUFFIX}.cmake)
По некоторым причинам $ {CMAKE_CURRENT_LIST_DIR} не устанавливается должным образом.
Это выглядит как динамически изменяемая переменная. Почему это не так, как ожидалось?
Правильная поддержка версий CMake до 2.8.3 не была представлена в OpenCV 2.4.9. В частности, это означает, что CMAKE_CURRENT_LIST_DIR не является определенной переменной в сгенерированном OpenCVConfig.cmake. Это приводит к неправильному формированию пути к OpenCVModules.cmake. По крайней мере, в отношении этой оскорбительной строки в OpenCVConfig.cmake, совместимость для более старых версий CMake не была добавлена до 2.4.11 (я проверил это, посмотрев на ./cmake/templates/OpenCVConfig.cmake.in
на OpenCV GitHub).
При этом, если вы можете выбрать, какие версии CMake и OpenCV использовать, то я бы предложил использовать последнюю версию CMake (> = 2.8.12) и последнюю версию OpenCV 2.4 (2.4.13.1) или OpenCV 3.1.
Других решений пока нет …