0

我有一个从源代码安装的库。看起来不错,安装清单显示我需要的所有文件都已安装:

/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 上找到它。没有它我无法构建,我该如何让它工作?

4

1 回答 1

0

因此在特定路径中搜索cmake 模块。我相信默认值类似于/usr/share/cmake/<version>/modules

您可以将 cmake_module_path 变量设置为安装 Findaruco cmake 文件的目录,或者将该模块移动到其他 cmake 文件所在的位置。

旁注:如果您还没有运行$ sudo updatedb,则$ locate不会显示您安装的新库,因为它尚未添加到数据库中进行定位

于 2016-06-20T14:05:42.960 回答