SLAM14讲第5讲代码错误解决方法 2019-3-14

最近由于系统重做,导致一些依赖项没有全部安装,在运行14讲的源码过程中出现了一些问题,费了点时间解决了,现在进行记录,以防以后碰到相同的问题。

1.ch5 代码运行出错

1.1 对于第五讲的代码 imageBase , OpenCV 安装好基本没有问题;但是对于 joinMap ,我在安装完 pcl-dev 之后编译出现了这样的错误:

make[2]: *** No rule to make target '/usr/lib/i386-linux-gnu/libproj.so', needed by 'joinMap'。 停止。
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/joinMap.dir/all' failed
make[1]: *** [CMakeFiles/joinMap.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

这是在编译到 50% 出的错,我重新 make --debug ,发现是找不到 libproj.so 库,于是我 cd 到/usr/lib/i386-linux-gnu 下去找是否存在 libproj* ,发现存在 libproj.so.9 文件,于是使用下面的代码解决:

sudo ln -s /usr/lib/i386-linux-gnu/libproj.so.9 /usr/lib/i386-linux-gnu/libproj.so

将 libproj.so.9 文件链接到 libproj.so 文件上,即可解决 “No rule to make target XXXXX” 问题;

1.2 但是解决了这个问题以后又出现了下面这个问题:

[100%] Linking CXX executable joinMap
/usr/bin/ld: 找不到 -lvtkproj4
collect2: error: ld returned 1 exit status
CMakeFiles/joinMap.dir/build.make:349: recipe for target 'joinMap' failed
make[2]: *** [joinMap] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/joinMap.dir/all' failed
make[1]: *** [CMakeFiles/joinMap.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

而且最可气的是已经 100% 却编译不过,好气哦,于是我又 make --debug 了以下,发现还是在 /usr/lib 下没有 libvtkproj4.so 这个文件,但是同时找到了 libvtkproj4.so.5.10.1 以及 libvtkproj4.so.5.10 ,那么直接将上述文件的任意一个链接到 libvtkproj4.so 上就好啦:

sudo ln -s libvtkproj4.so.5.10.1 libvtkproj4.so

终于编译过了,运行成功,SLAM都是坑啊~~~~~~~~~~~

猜你喜欢

转载自blog.csdn.net/weixin_42896619/article/details/88655975
今日推荐