我想将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: 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