【ubuntu20.04+catrographer】衰仔踩坑记录

1 cere-solver版本应为1.4.0

这很重要!
如果你在报错信息中有看到cere,不用怀疑,就是它出了问题。
查看cere-solover版本:
打开home下安装ceres-solver的文件夹,然后打开ceres-solverpackage.xml文件,在里面第33行,可以看到版本号。
推荐博客:
https://blog.csdn.net/YiYeZhiNian/article/details/128805509

2 最后的链结失败: bad value

报错信息如下:

/usr/bin/ld: /usr/local/lib/libprotobuf.a(arena.o): relocation R_X86_64_TPOFF32 against symbol `_ZN6google8protobuf8internal9ArenaImpl13thread_cache_E' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/libprotobuf.a(common.o): relocation R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: 最后的链结失败: bad value
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
<== Failed to process package 'cartographer_rviz': 
  Command '['/home/liujun/example_ws/catrographer_ws/install_isolated/env.sh', 'ninja', '-j8', '-l8']' returned non-zero exit status 1.

Reproduce this error by running:
==> cd /home/liujun/example_ws/catrographer_ws/build_isolated/cartographer_rviz && /home/liujun/example_ws/catrographer_ws/install_isolated/env.sh ninja -j8 -l8

Command failed, exiting.

so动态库编译加上了-fPIC选项 但在链接 libprotobuf.a时, libprotobuf.a的编译未加入-fPIC选项,所以需要 重新编译libprotobuf 并加入 -fPIC选项。

sudo make clean
sudo make uninstall
./configure CXXFLAGS=-fPIC
make
make install

参考博客:
https://blog.csdn.net/whatday/article/details/122553195
https://blog.csdn.net/qq_41005689/article/details/122728281
输入

which protoc

查看protoc路径输出如下:

/bin/protoc /usr/bin/protoc

使用如下命令建立软链接:

sudo ln -s /usr/local/bin/protoc /usr/bin/protoc

其他错误很容易在其他博客找寻到,甚至可以自行解决,相信你可以的。
最后,祝顺利!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还重名就过分了啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值