2016-06-20 10 views
0

Ich habe eine Bibliothek, die ich von der Quelle installiert habe. Es sieht gut aus, installieren Sie das Manifest zeigt, dass alle Dateien, die ich installiert wurden müssen:Find_package funktioniert nicht mit Bibliothek aus Quelle

/usr/local/lib/cmake/Findaruco.cmake 
/usr/local/lib/pkgconfig/aruco-uninstalled.pc 
/usr/local/lib/pkgconfig/aruco.pc 
/usr/local/lib/libaruco.so.2.0.7 
/usr/local/lib/libaruco.so.2.0 
/usr/local/lib/libaruco.so 
/usr/local/include/aruco/marker.h 
/usr/local/include/aruco/markerdetector.h 
/usr/local/include/aruco/dictionary.h 
/usr/local/include/aruco/levmarq.h 
/usr/local/include/aruco/markermap.h 
/usr/local/include/aruco/cameraparameters.h 
/usr/local/include/aruco/posetracker.h 
/usr/local/include/aruco/exports.h 
/usr/local/include/aruco/markerlabeler.h 
/usr/local/include/aruco/cvdrawingutils.h 
/usr/local/include/aruco/ar_omp.h 
/usr/local/include/aruco/aruco.h 
/usr/local/include/aruco/dictionary_based.h 
/usr/local/include/aruco/svmmarkers.h 
/usr/local/bin/aruco_tracker 
/usr/local/bin/aruco_simple 
/usr/local/bin/aruco_test 
/usr/local/bin/aruco_print_marker 
/usr/local/bin/aruco_print_dictionary 
/usr/local/bin/aruco_markermap_pix2meters 
/usr/local/bin/aruco_simple_markermap 
/usr/local/bin/aruco_test_markermap 
/usr/local/bin/aruco_calibration 
/usr/local/bin/aruco_calibration_fromimages 

ich auch die Header enthalten kann, die ich aus dieser Bibliothek in meinem Projekt benötigen; Sie sind gefunden.

Was nicht funktioniert, ist die Verknüpfung der Bibliothek. meine cmakeLists haben die folgende Zeile:

find_package(aruco REQUIRED) 

Ich würde denken, dass das ausreichen würde, da die Findaruco.cmake Datei in /usr/local/lib/cmake ist. Cmake kann die Bibliothek jedoch nicht finden. Ich bemerkte auch, dass locate .so | grep aruco nicht wirklich die Bibliothek findet. Es ist ausgegeben:

/usr/local/lib/libopencv_aruco.so 
/usr/local/lib/libopencv_aruco.so.3.1 
/usr/local/lib/libopencv_aruco.so.3.1.0 

So etwas ist offensichtlich falsch. Ich bemerkte außerdem, dass bei der Installation Cmake sagt mir die folgenden (zusammen mit anderen aus dieser Bibliothek):

Removed runtime path from "/usr/local/lib/libaruco.so.2.0.7" 

Heißt das etwas damit zu tun haben? Wenn Sie einen Blick auf die Bibliothek werfen möchten, finden Sie sie unter here on sourceforge. Ich kann nicht ohne sie bauen, wie bekomme ich das zum Laufen?

Antwort

0

so nach cmake modules in bestimmten Pfaden gesucht werden. Ich glaube, der Standard ist etwas in Richtung der /usr/share/cmake/<version>/modules

Sie könnten die cmake_module_path-Variable auf das Verzeichnis, in dem Sie die Findaruco cmake-Datei installiert haben, oder verschieben Sie das Modul an den Speicherort wo Ihre anderen cmake-Dateien sind.

side note: Wenn Sie nicht ausgeführt haben $ sudo updatedb dann $ locate die neuen Bibliotheken, die Sie nicht verraten installiert, da es wurde nicht in die Datenbank hinzugefügt für

+0

Okay dank orten, ich die Findaruco.cmake Datei auf eine kopierte/Module-Ordner in meinem Projekt und setzen Sie den CMAKE_MODULE_PATH darauf. Es funktioniert jetzt. Ich denke jedoch, dass der Ersteller der aruco-Bibliothek eine arucoConfig.cmake-Datei erstellt haben sollte. – RunOrVeith

+0

ja er sollte, Iirc ist es relativ neueren (vielleicht Version 3 von cmake?) Also vielleicht die Aruco Lib ist älter idk, froh, dass das Problem gelöst – kirinthos

Verwandte Themen