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 ...
@Felix Endres ...can you help please ?
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?
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)"
Sorry, no idea. If it helps, undo the change to the CMakeLists.txt. Usage of ICP is off by default anyway.