我有一个从源代码安装的库。看起来不错,安装清单显示我需要的所有文件都已安装:
/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"
这有什么关系吗?如果您需要查看该库,可以在 sourceforge 上找到它。没有它我无法构建,我该如何让它工作?