Re: Error while compiling RTAB-Map with g2o support

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