我有一个从源代码安装的库。 它看起来很好,安装清单显示我需要安装所有文件:
/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 / local / lib目录/ 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"
这与它有什么关系吗? 如果您需要查看库,可以找到它here on sourceforge。 没有它我就无法建立,我该如何让它发挥作用?
答案 0 :(得分:0)
所以在特定路径中搜索cmake modules。我认为默认值是/usr/share/cmake/<version>/modules
您可以将cmake_module_path变量设置为您安装Findaruco cmake文件的目录,或将该模块移动到其他cmake文件所在的位置。
旁注:如果您尚未运行$ sudo updatedb
,那么$ locate
将不会显示您安装的新库,因为它尚未添加到数据库中以进行定位