Posted by
g.bartoli on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Error-while-compiling-RTAB-Map-with-g2o-support-tp422p425.html
I have the same version:
bartoli@Calliope ~/Projects/rtabmap/bin $ gcc --version
gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
In the meanwhile, there were some evolutions... ;)
The first one is that uninstalling ros-indigo-libg2o, RTAB correctly compiles, so the problem is obviously related to g2o.
The second one is that now I remembered that some weeks ago I compiled the source code of the standalone g2o library and installed it with "sudo make install", in fact the library and header files where in /usr/local. So, when I installed the ROS g2o package, there were TWO g2o installed, that was my fault... :(
To solve this, I manually deleted g2o from /usr/local, then I reinstalled ros-indigo-libg2o with apt-get and now I have g2o in ROS paths:
$ sudo find / -name *g2o*
..............
/opt/ros/indigo/lib/libg2o_types_slam2d.so
/opt/ros/indigo/lib/libg2o_solver_cholmod.so
/opt/ros/indigo/lib/libg2o_cli.so
/opt/ros/indigo/lib/libg2o_solver_eigen.so
/opt/ros/indigo/lib/libg2o_interface.so
/opt/ros/indigo/lib/libg2o_types_data.so
/opt/ros/indigo/lib/libg2o_solver_pcg.so
/opt/ros/indigo/lib/libg2o_solver_slam2d_linear.so
/opt/ros/indigo/lib/libg2o_incremental.so
/opt/ros/indigo/lib/libg2o_ext_freeglut_minimal.so
/opt/ros/indigo/lib/libg2o_types_slam3d.so
/opt/ros/indigo/lib/libg2o_types_sba.so
/opt/ros/indigo/lib/libg2o_parser.so
/opt/ros/indigo/lib/libg2o_types_sclam2d.so
/opt/ros/indigo/lib/libg2o_types_icp.so
/opt/ros/indigo/lib/libg2o_solver_dense.so
/opt/ros/indigo/lib/libg2o_opengl_helper.so
/opt/ros/indigo/lib/libg2o_simulator.so
/opt/ros/indigo/lib/libg2o_stuff.so
/opt/ros/indigo/lib/libg2o_core.so
/opt/ros/indigo/lib/libg2o_interactive.so
/opt/ros/indigo/lib/libg2o_solver_csparse.so
/opt/ros/indigo/lib/libg2o_types_sim3.so
/opt/ros/indigo/lib/libg2o_csparse_extension.so
/opt/ros/indigo/lib/libg2o_solver_structure_only.so
/opt/ros/indigo/include/g2o
/opt/ros/indigo/include/g2o/examples/interactive_slam/g2o_interactive
/opt/ros/indigo/include/g2o/examples/interactive_slam/g2o_interactive/g2o_interactive_api.h
/opt/ros/indigo/include/g2o/examples/interactive_slam/g2o_interactive/g2o_slam_interface.h
/opt/ros/indigo/include/g2o/examples/interactive_slam/g2o_incremental
/opt/ros/indigo/include/g2o/examples/interactive_slam/g2o_incremental/g2o_incremental_api.h
/opt/ros/indigo/include/g2o/apps/g2o_cli
/opt/ros/indigo/include/g2o/apps/g2o_cli/g2o_common.h
/opt/ros/indigo/include/g2o/apps/g2o_cli/g2o_cli_api.h
/opt/ros/indigo/include/g2o/apps/g2o_simulator
/opt/ros/indigo/include/g2o/apps/g2o_simulator/g2o_simulator_api.h
/opt/ros/indigo/include/g2o/stuff/g2o_stuff_api.h
/opt/ros/indigo/include/g2o/types/sba/g2o_types_sba_api.h
/opt/ros/indigo/include/g2o/types/sclam2d/g2o_types_sclam2d_api.h
/opt/ros/indigo/include/g2o/types/slam3d/g2o_types_slam3d_api.h
/opt/ros/indigo/include/g2o/types/icp/g2o_types_icp_api.h
/opt/ros/indigo/include/g2o/types/data/g2o_types_data_api.h
/opt/ros/indigo/include/g2o/types/slam2d/g2o_types_slam2d_api.h
/opt/ros/indigo/include/g2o/solvers/slam2d_linear/g2o_slam2d_linear_api.h
/opt/ros/indigo/include/g2o/solvers/csparse/g2o_csparse_extension_api.h
/opt/ros/indigo/include/g2o/solvers/csparse/g2o_csparse_api.h
/opt/ros/indigo/include/g2o/core/g2o_core_api.h
/opt/ros/indigo/bin/g2o
/opt/ros/indigo/bin/g2o_simulator2d
/opt/ros/indigo/bin/g2o_simulator3d
/opt/ros/indigo/bin/g2o_online
/opt/ros/indigo/bin/g2o_incremental
/opt/ros/indigo/share/libg2o
..............
So, I executed cmake again on RTAB source and it correctly finds g2o now:
-- Info :
-- CMAKE_INSTALL_PREFIX = /usr/local
-- CMAKE_BUILD_TYPE = Release
-- BUILD_SHARED_LIBS = ON
-- With OpenCV nonfree module (SIFT/SURF) = NO (not found)
-- With Freenect = YES
-- With OpenNI2 = YES
-- With Freenect2 = NO (libfreenect2 not found)
-- With dc1394 = YES
-- With FlyCapture2/Triclops = NO (Point Grey SDK not found)
-- With g2o = YES
-- With Qt = YES (version 4)
Unfortunately, executing make now gives the following file-not-found error:
[ 6%] Built target rtabmap_utilite
[ 7%] Built target uresourcegenerator
[ 8%] Building CXX object corelib/src/CMakeFiles/rtabmap_core.dir/Graph.cpp.o
/home/bartoli/Projects/rtabmap/corelib/src/Graph.cpp:42:39: fatal error: g2o/core/sparse_optimizer.h: No such file or directory
#include "g2o/core/sparse_optimizer.h"
^
compilation terminated.
make[2]: *** [corelib/src/CMakeFiles/rtabmap_core.dir/Graph.cpp.o] Error 1
make[1]: *** [corelib/src/CMakeFiles/rtabmap_core.dir/all] Error 2
make: *** [all] Error 2
Do you know what am I missing?
~Guido