关于LIO-SAM编译时出现错误 /usr/bin/ld: 找不到 -lBoost::timer

关于LIO-SAM编译时出现错误:
下载LIO-SAM代码
进入LIO-SAM文件夹,通过以下代码编译:

mkdir build
cd build
cmake ..
make

报错:

/usr/bin/ld: 找不到 -lBoost::timer
collect2: error: ld returned 1 exit status
CMakeFiles/lio_sam_imuPreintegration.dir/build.make:759: recipe for target 'devel/lib/lio_sam/lio_sam_imuPreintegration' failed
make[2]: *** [devel/lib/lio_sam/lio_sam_imuPreintegration] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/lio_sam_imuPreintegration.dir/all' failed
make[1]: *** [CMakeFiles/lio_sam_imuPreintegration.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

找到CMake.Lists文件,在第27行后添加:

find_package(Boost REQUIRED COMPONENTS timer)

再次,make一下,就可以看到成功。

解决error while loading shared libraries: libxxx.so: cannot open shared object file
参照文章:解决error while loading shared libraries: libxxx.so: cannot open shared object file
运行LIOSAM的时候,需要用到libmetis-gtsam.so这个动态库,这是应该是安装gtsam包得到了。我确实已经安装了这个包,但还是报错了,原因在于:
libmetis-gtsam.so这个文件位于路径“/usr/local/lib” 中,而程序默认找的位置是路径“/usr/lib”,所以没有找到,看了很多方法,还挺麻烦的,所以自己想出来一种方法——把文件复制过去。

$ sudo cp /usr/local/lib/libxxx.so usr/lib

这样,就不会在报这样的错误了。
当然,如果你的动态库没有在路径/usr/local/lib里面,就改成相应的路径就好了。
成功解决!

你可能感兴趣的:(SLAM,LOAM系列,slam)