学习15:apt-get install重新安装MRPT

貌似又编译失败了。找不到MRPT的很多头文件。


添加源

sudo add-apt-repository ppa:joseluisblancoc/mrpt
sudo apt-get update
sudo apt-get install libmrpt-dev mrpt-apps  
# ONLY if you want debug -dbg packages
#sudo apt-get install libmrpt-dbg

继续编译mapgen,居然出现有一个头文件叫 

cs.h。

In file included from /usr/local/include/g2o/solvers/csparse/linear_solver_csparse.h:30:0,
                 from /home/caleb/catkin_ws/src/mapgen/src/mapgen.cpp:39:
/usr/local/include/g2o/solvers/csparse/csparse_helper.h:23:16: fatal error: cs.h: No such file or directory
 #include 


我也很无奈啊。看来G2O没安装好,或者又啥依赖没弄好嘛?!!

无可奈何,只能用网上的命令。

sudo apt-get install build-essential cmake libcholmod2.1.2 libsuitesparse-metis-3.1.0 libsuitesparse-metis-dbg libsuitesparse-metis-dev freeglut3 freeglut3-dev freeglut3-dbg qt4-qmake libqglviewer2 libqglviewer-dev libqglviewer-doc libeigen3-dev libeigen3-doc


cd到桌面的g2o-master目录,rm -r 命令,删了build。

mkdir重建一个build文件夹。

cd进build文件夹

执行

cmake ..
接着

make -j8

然后

sudo make install 

然后还是提示没有 cs.h这个东西。下面的网站给出了解决方案

https://github.com/RainerKuemmerle/g2o/issues/53

但是,貌似我的cs.h的文件不在g2o目录下,我g2o下,也没有 EXTERNAL这个目录,

上面链接给出的方法是,在build之前在cmake-gui里做一堆设置。


然后再cameklist里添加了

SET( ${CSPARSE_INCLUDE_DIR} /usr/include/suitesparse)

然后就不会找不到cs.h的错误,但是又出现了其他错误。


/home/caleb/catkin_ws/src/mapgen/src/mapgen.cpp: In member function ‘void MapPublisher::publish(Frame*)’:
/home/caleb/catkin_ws/src/mapgen/src/mapgen.cpp:221:45: error: conversion from ‘mrpt::poses::CPose2D’ to non-scalar type ‘mrpt::poses::CPose3D’ requested
         CPose3D curPose = keyFrame->getPose();

让我研究下为啥……





你可能感兴趣的:(学习15:apt-get install重新安装MRPT)