Я пытаюсь импортировать OpenCV в мой файл CMakeLists.txt. Вот код, я использую:CMAKE: связывание OpenCV сбой при импорте
find_package(OpenCV 3 REQUIRED)
add_library(opencv SHARED IMPORTED)
set_target_properties(opencv PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${OpenCV_INCLUDE_DIRS}"
IMPORTED_LOCATION "${OpenCV_LIBS}")
Далее в файле CMake, я создаю цель, ссылки на OpenCV, как так:
add_executable(sample "src/sample.cpp")
target_link_libraries(sample opencv)
Однако это не удается построить. Я, случается, использую ниндзя, но он не работает с Make тоже.
Здесь ошибка я получаю, когда я пытаюсь построить с Ninja:
ninja: error: stat(opencv_viz;opencv_videostab;opencv_videoio;opencv_video;opencv_superres;opencv_stitching;opencv_shape;opencv_photo;opencv_objdetect;opencv_ml;opencv_imgproc;opencv_imgcodecs;opencv_highgui;opencv_flann;opencv_features2d;opencv_cudev;opencv_cudawarping;opencv_cudastereo;opencv_cudaoptflow;opencv_cudaobjdetect;opencv_cudalegacy;opencv_cudaimgproc;opencv_cudafilters;opencv_cudafeatures2d;opencv_cudacodec;opencv_cudabgsegm;opencv_cudaarithm;opencv_core;opencv_calib3d): File name too long
Очевидно, что значение $ {OpenCV_LIBS} представляет собой список значений, и этот список становится передается в качестве одной длинной строки вместо того, чтобы разделяться и связываться как отдельные аргументы с компилятором.
Я проверял, что другие библиотеки также не работают, если IMPORTED_LOCATION - это список значений (разделенных точкой с запятой), а не только один путь к библиотеке.
Что я делаю неправильно?
Я использую CMake версии 3.5.2 FYI – kgreenek