Robotics StackExchange | Archived questions

multiple definition of `corresp' : error while installing RGBD SLAM

Hi,

I have ubuntu 12.04 and Fuerte. I am trying to install RGBD SLAM.

Currently I am getting error like this

Most of the error says multiple definition of 'corresp'

/opt/ros/fuerte/stacks/geometry/tf/include/tf/LinearMath/Matrix3x3.h:246: multiple definition of `corresp'

  CMakeFiles/rgbdslam.dir/src/main.o:/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/src/main.cpp:28: first defined here
  CMakeFiles/rgbdslam.dir/src/graph_manager.o: In function `__insertion_sort<__gnu_cxx::__normal_iterator<std::pair<int, Eigen::Matrix<double, -0x00000000000000001, -0x00000000000000001>*>*, std::vector<std::pair<int, Eigen::Matrix<double, -0x00000000000000001, -0x00000000000000001>*>, std::allocator<std::pair<int, Eigen::Matrix<double, -0x00000000000000001, -0x00000000000000001>*> > > >, g2o::{anonymous}::CmpPairFirst<int, Eigen::Matrix<double, -0x00000000000000001, -0x00000000000000001>*, std::less<int> > >':
  /usr/include/c++/4.6/bits/stl_algo.h:2123: multiple definition of `corresp'
  CMakeFiles/rgbdslam.dir/src/main.o:/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/src/main.cpp:28: first defined here
  CMakeFiles/rgbdslam.dir/src/graph_mgr_io.o: In function `boost::shared_ptr<pcl::PointCloud<pcl::PointXYZRGB> >::operator*() const':
  /usr/include/boost/smart_ptr/shared_ptr.hpp:410: multiple definition of `corresp'
  CMakeFiles/rgbdslam.dir/src/main.o:/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/src/main.cpp:28: first defined here
  CMakeFiles/rgbdslam.dir/src/landmark.o: In function `Eigen::DenseCoeffsBase<Eigen::Matrix<double, 3, 3, 0, 3, 3>, 1>::operator()(int, int)':
  /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:347: multiple definition of `corresp'
  CMakeFiles/rgbdslam.dir/src/main.o:/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/src/main.cpp:28: first defined here
  CMakeFiles/rgbdslam.dir/src/loop_closing.o:(.bss+0x0): multiple definition of `corresp'
  CMakeFiles/rgbdslam.dir/src/main.o:/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/src/main.cpp:28: first defined here
  CMakeFiles/rgbdslam.dir/src/icp.o: In function `~PooledAllocator':
  /opt/ros/fuerte/include/flann/util/allocator.h:108: multiple definition of `corresp'
  CMakeFiles/rgbdslam.dir/src/main.o:/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/src/main.cpp:28: first defined here
  CMakeFiles/rgbdslam.dir/src/transformation_estimation.o: In function `__insertion_sort<__gnu_cxx::__normal_iterator<std::pair<int, Eigen::Matrix<double, -0x00000000000000001, -0x00000000000000001>*>*, std::vector<std::pair<int, Eigen::Matrix<double, -0x00000000000000001, -0x00000000000000001>*>, std::allocator<std::pair<int, Eigen::Matrix<double, -0x00000000000000001, -0x00000000000000001>*> > > >, g2o::{anonymous}::CmpPairFirst<int, Eigen::Matrix<double, -0x00000000000000001, -0x00000000000000001>*, std::less<int> > >':
  /usr/include/c++/4.6/bits/stl_algo.h:2123: multiple definition of `corresp'
  CMakeFiles/rgbdslam.dir/src/main.o:/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/src/main.cpp:28: first defined here
  CMakeFiles/rgbdslam.dir/src/graph_manager2.o: In function `GraphManager::toggleMapping(bool)':
  /home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/src/graph_manager2.cpp:21: multiple definition of `corresp'
  CMakeFiles/rgbdslam.dir/src/main.o:/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/src/main.cpp:28: first defined here
  CMakeFiles/rgbdslam.dir/src/moc_openni_listener.o: In function `OpenNIListener::metaObject() const':
  /home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/build/src/moc_openni_listener.cxx:97: multiple definition of `corresp'
  CMakeFiles/rgbdslam.dir/src/main.o:/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/src/main.cpp:28: first defined here
  CMakeFiles/rgbdslam.dir/src/moc_graph_manager.o: In function `GraphManager::metaObject() const':
  /home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/build/src/moc_graph_manager.cxx:191: multiple definition of `corresp'
  CMakeFiles/rgbdslam.dir/src/main.o:/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/src/main.cpp:28: first defined here
  /usr/bin/ld: skipping incompatible /usr/lib/Lib/libOpenNI.so when searching for -lOpenNI
  /usr/bin/ld: skipping incompatible /usr/lib/Lib/libOpenNI.so when searching for -lOpenNI
  /usr/bin/ld: skipping incompatible /usr/lib/Lib/libOpenNI.so when searching for -lOpenNI
  /usr/bin/ld: skipping incompatible /usr/lib/Lib/libOpenNI.so when searching for -lOpenNI
  collect2: ld returned 1 exit status
  make[3]: *** [../bin/rgbdslam] Error 1
  make[3]: Leaving directory `/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/build'
  make[2]: *** [CMakeFiles/rgbdslam.dir/all] Error 2
  make[2]: Leaving directory `/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/build'
  make[1]: *** [all] Error 2
  make[1]: Leaving directory `/home/sai/fuerte_workspace/rgbdslam_freiburg/rgbdslam/build'

-------------------------------------------------------------------------------}

Any solution please... ?

Asked by sai on 2014-05-21 19:08:17 UTC

Comments

@felix endres ...can you help please ?

Asked by sai on 2014-05-22 02:18:13 UTC

Wow, not really. I do not have this problem. Did you change the code? Do you have any non-standard setup for STL or gcc?

Asked by Felix Endres on 2014-05-26 23:23:34 UTC

I did not change any code, just edited the CMakeLists.txt to make it not use GICP. To know about the current version of gcc, i typed 'gcc -v' which returned "gcc version 4.8.1 (Ubuntu 4.8.1-2ubuntu1~12.04)" and when i typed 'g++ -v' , it returned "gcc version 4.6.4 (Ubuntu/Linaro 4.6.4-1ubuntu1~12.04)"

Asked by sai on 2014-05-27 03:52:28 UTC

Sorry, no idea. If it helps, undo the change to the CMakeLists.txt. Usage of ICP is off by default anyway.

Asked by Felix Endres on 2014-06-03 08:42:04 UTC

Answers