У меня есть библиотека, которую я установил из источника.
Выглядит нормально, манифест установки показывает, что все нужные мне файлы были установлены:
/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
Я также могу включить заголовки, которые мне нужны из этой библиотеки, в мой проект; они найдены.
Что не работает, так это связывание библиотеки.
мой cmakeLists имеет следующую строку:
find_package(aruco REQUIRED)
Я думаю, этого будет достаточно, так как файл Findaruco.cmake находится в
/ USR / местные / Библиотека / CMake. Однако cmake не может найти библиотеку.
Я также заметил, что
locate .so | grep aruco
на самом деле не найти библиотеку. Это вывод:
/usr/local/lib/libopencv_aruco.so
/usr/local/lib/libopencv_aruco.so.3.1
/usr/local/lib/libopencv_aruco.so.3.1.0
Так что что-то явно не так.
Я также заметил, что при установке cmake сообщает мне следующее (наряду с другими из этой библиотеки):
Removed runtime path from "/usr/local/lib/libaruco.so.2.0.7"
Это как-то связано с этим?
Если вам нужно взглянуть на библиотеку, вы можете найти ее здесь на sourceforge.
Я не могу построить без него, как мне заставить это работать?
так модули cmake ищутся по конкретным путям. Я считаю, что по умолчанию что-то вроде /usr/share/cmake/<version>/modules
вы можете установить переменную cmake_module_path в каталог, в который вы установили файл cmake Findaruco, или переместить этот модуль в то место, где находятся другие ваши файлы cmake.
примечание: если вы еще не бежали $ sudo updatedb
затем $ locate
не покажет новые библиотеки, которые вы установили, потому что они не были добавлены в базу данных для поиска
Других решений пока нет …