由于要学习下SLAM的知识,就决定在ubantu上运行一个SLAM框架,看了一些东西后,决定在orb_slam和 lsd_slam 这两个框架上进行运行。
首先开始运行lsd_slam,这里碰到了一些问题,以及找到的解决方法,在此记录下,以防以后找不到,也是对碰到这类问题的同行一些启发。
要向编译lsd_slam,首先安装ROS indigo,这个环境编译时,必须安装boost,我的电脑是ubuntu14.04,要求安装的boost1.54。
1:在安装boost时,碰到比较扯淡的事情,老是编译不过。
"error: 'uintptr_t' was not declared in this scope".
我找到的解决方法是修改boost/atomic/atomic.hpp中的代码
- || (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__)) \
+ || (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__) && !defined(__GLIBC__)) \
在编译时,可能还会碰到类似这个的错误,同样的在合适的文件中更改。
参考https://svn.boost.org/trac/boost/ticket/7979
2: