cartographer安装踩坑记录)

cartographer安装踩坑记录

安装

参考链接:官方安装指导过程
Cartographer安装官网教程
cartographer超详尽安装教程!安装教程
安装教程https://zhuanlan.zhihu.com/p/100107552
在走到编译这步时,执行指令
catkin_make_isolated --install --use-ninja 后,界面ceres报错,错误信息如下
调试错误

查找资料发现,该错误由于protobuf版本冲突导致
解决该问题,几个相关博客可看完再操作,解决cartographer安装后(环境是ros-kinetic ,gazebo7),工作空间编译时提示protoc版本冲突错误
资料来源protoc版本冲突 卸载原来protoc:

1.看哪里有安装protoc:
whereis protoc

现在用的protoc是在哪里安装的:
which protoc

查看目前正在使用的protoc版本:
protoc --version

2、删除安装目录的安装包,例如下面的命令:

rm /usr/local/bin/protoc

参考文章:protobuf的安装和卸载
1.下载protobuf
下载地址:https://github.com/google/protobuf/releases

2.编译protobuf
解压下载的zip包,cd到protobuf的目录下,执行以下指令:
tar -xvf protobuf
cd protobuf
./configure --prefix=/usr
此处参考链接:Protocol Buffers - Google’s data interchange format
Ubuntu16中卸载并重新安装google的Protocol Buffers
参考链接:
cartographer 最新版安装测试https://www.cnblogs.com/lvchaoshun/p/9824528.html
此处注意官网写了,默认会安装到/usr/local路径下,但是/usr/local/lib不一定是系统路径LD_LIBRARY_PATH的一部分,因而或者将/usr/local/lib增加到系统路径LD_LIBRARY_PATH,或者指定安装路径。最好的就是指定安装到/usr路径(此时由于拷贝lib文件夹,实际上安装到/usr/lib路径)
如下命令:

./configure --prefix=/usr
还有,如果以前有安装过的话,现在想安装到其他路径,使用make clean清理一下原来的版本。

make -j4
make check
sudo make install
sudo ldconfig # refresh shared library cache

执行sudo ldconfig报错 “ldconfig: Warning: ignoring configuration file that cannot be opened: /usr/local/etc/ld.so.conf: No such file or directory”, 参考链接Ubuntu——/etc/ld.so.conf
报错

Ubuntu——/etc/ld.so.conf一文,直接在要求目录下创建该文件,执行指令
sudo gedit /usr/local/etc/ld.so.conf
保存后再执行指令 sudo ldconfig ,输出版本
该指令资料 “ldconfig命令和/etc/ld.so.conf文件详解” ldconfig命令和/etc/ld.so.conf文件详解
在这里插入图片描述

默认3.12会安装到/usr/local/bin目录下,然后通过软链接的方式将新生成的protoc链接到/usr/bin即可。 此处参考资料“Ubuntu14.04上编译指定版本的protobuf源码操作步骤”,Ubuntu14.04上编译指定版本的protobuf源码操作步骤

软链接指令:
sudo ln -s /usr/local/bin/protoc /usr/bin/protoc

3.检查安装是否成功
protoc –version
如果成功,则会输出版本号信息,例如:libprotoc 3.5.1
如果有问题,则会输出错误内容。

备注,资料来源:Linux ./configure --prefix 命令是什么意思?
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。

Configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。

其中–prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。

如果配置–prefix,如:

./configure --prefix=/usr/local/test
可以把所有资源文件放在/usr/local/test的路径中,不会杂乱。
用了—prefix选项的另一个好处是卸载软件或移植软件。当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统)。

当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是make文件指定过uninstall。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值