Ich versuche OpenCV in meine CMakeLists.txt Datei zu importieren. Hier ist der Code Ich verwende:CMAKE: Linking OpenCV schlägt fehl beim Importieren
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}")
Später in der Cmake Datei erstelle ich ein Ziel, das zu opencv verbindet, etwa so:
add_executable(sample "src/sample.cpp")
target_link_libraries(sample opencv)
Dies ist jedoch nicht zu bauen. Ich benutze Ninja, aber es scheitert auch mit Make. Hier
ist der Fehler, den ich immer bin, wenn ich versuche mit Ninja zu bauen:
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
eindeutig den Wert von $ {OpenCV_LIBS} ist eine Liste von Werten, und diese Liste wird immer als eine lange Zeichenfolge übergeben anstatt aufgeteilt und als einzelne Args mit dem Compiler verknüpft zu werden.
Ich habe überprüft, dass andere Bibliotheken auch fehlschlagen, wenn die IMPORTED_LOCATION eine Liste von Werten (durch Semikolon getrennt) anstatt nur ein einzelner Pfad zu einer Bibliothek ist.
Was mache ich falsch?
I Cmake Version bin mit 3.5.2 FYI – kgreenek