2017年2月8日,那是一个阴天。
为了完成高翔博士的《一起做RGB-D SLAM》教程,我在 Ubuntu 14.04 安装 g2o。
遇到困难,怎奈我眼瞎,找错了方向,浪费时间,没有成功安装。
问题如下(跳到最后一个问题描述,直接正常安装):
g2o_viewer 没有被安装这个大多是因为没有安装libqglviewer-dev
(在 Ubuntu 12.04 上这东西叫libqglviewer-qt4-dev
)。
先安装libqglviewer-dev
,再编译、安装 g2o。
安装成功 g2o_viewer之后,运行 g2o_viewer 会出现链接动态库失败的错误。
经查找,可以在/usr/local/lib
中找到 libqglviewer.so 文件。
错误的原因是/usr/local/lib
不在系统查找.so
文件的路径下。
需自行添加路径。
在/etc/ld.so.conf
文件中添加/usr/local/lib
目录,然后更新缓存sudo ldconfig
。
在 Windows 下动态链接库.dll
是放置在$PATH
指明的目录下,或者直接与可执行文件.exe
放置在同一目录下,而在 Linux 中动态链接库.so
没有被当做是可执行文件放置在可执行文件应该放置的地方。
运行 g2o_viewer 会报错Segmentation fault (core dumped)
,Google 找了很多都没有解决问题。
最后还是回到 Github 这个 repo 的 issues 才找到答案。
链接 https://github.com/RainerKuemmerle/g2o/issues/151 中说了是因为在 Ubuntu 14.04 下使用的是 Qt4,而当前的 g2o 版本使用的是 Qt5,所以 g2o_viewer 链接了 Qt 两个版本的动态链接库。
所以解决方案是找到原来使用 Qt4 的 g2o 源码进行编译安装。
看链接 https://github.com/RainerKuemmerle/g2o/commits/master 知道在2017年1月13日有一个 commit 是“Switch to Qt5”,所以 git checkout 到之前版本就可以直接正常编译安装。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)