Rosanswers logo


I was trying to build the latest rgbdslam from instructions on http://www.ros.org/wiki/rgbdslam. I was able to check out the rgbdslam source code from the openslam repository but wasn't able to checkout the hogman_minimal code. I tried to get around this by manually downloading the source code and then putting it in /opt/ros/diamondback/stacks/hogman_minimal, but when I do rosmake the system can't find -lhogman_csparse and the other files that's supposed to be in /usr/bin/ld. Has anyone had any similar experiences?

I've included a log of the build.

Thanks, Ken

mkdir -p bin cd build && cmake -Wdev -DCMAKE_TOOLCHAIN_FILE=rospack find rosbuild/rostoolchain.cmake .. [rosbuild] Building package rgbdslam [rosbuild] Including /opt/ros/diamondback/stacks/ros_comm/clients/rospy/cmake/rospy.cmake [rosbuild] Including /opt/ros/diamondback/stacks/ros_comm/clients/roslisp/cmake/roslisp.cmake [rosbuild] Including /opt/ros/diamondback/stacks/ros_comm/clients/cpp/roscpp/cmake/roscpp.cmake -- Configuring done -- Generating done -- Build files have been written to: /opt/ros/diamondback/stacks/rgbdslam/build cd build && make -l2 make[1]: Entering directory /opt/ros/diamondback/stacks/rgbdslam/build' make[2]: Entering directory /opt/ros/diamondback/stacks/rgbdslam/build' make[3]: Entering directory /opt/ros/diamondback/stacks/rgbdslam/build' make[3]: Leaving directory /opt/ros/diamondback/stacks/rgbdslam/build' [ 0%] Built target rospack_genmsg_libexe make[3]: Entering directory /opt/ros/diamondback/stacks/rgbdslam/build' make[3]: Leaving directory /opt/ros/diamondback/stacks/rgbdslam/build' [ 0%] Built target rosbuild_precompile make[3]: Entering directory /opt/ros/diamondback/stacks/rgbdslam/build' make[3]: Leaving directory /opt/ros/diamondback/stacks/rgbdslam/build' make[3]: Entering directory /opt/ros/diamondback/stacks/rgbdslam/build' Linking CXX executable ../bin/rgbdslam /usr/bin/ld: cannot find -lhogman_csparse /usr/bin/ld: cannot find -lhogman_graph_optimizer_hogman /usr/bin/ld: cannot find -lhogman_graph_optimizer /usr/bin/ld: cannot find -lhogman_graph /usr/bin/ld: cannot find -lhogman_stuff collect2: ld returned 1 exit status make[3]: *** [../bin/rgbdslam] Error 1 make[3]: Leaving directory /opt/ros/diamondback/stacks/rgbdslam/build' make[2]: *** [CMakeFiles/rgbdslam.dir/all] Error 2 make[2]: Leaving directory /opt/ros/diamondback/stacks/rgbdslam/build' make[1]: *** [all] Error 2 make[1]: Leaving directory /opt/ros/diamondback/stacks/rgbdslam/build' make: *** [all] Error 2

Originally posted by KenHo on ROS Answers with karma: 1 on 2011-08-21

Post score: 0


1 Answer 1


Rosanswers logo

Have you built hogman_minimal itself? The libraries should then be in /opt/ros/diamondback/stacks/hogman_minimal/lib (/usr/bin/ld is not a directory but the linker executable). My guess is, that you used the superuser to put hogman_minimal into /opt/ros/... but call make as regular user. Therefore rosmake lacks permission to write the built binaries into the target directory and cannot find them lateron when linking rgbdslam.

My suggestion is to put ros packages not installed with the package manager (e.g. apt-get) into a directory in your home directory and modify the $ROS_PACKAGE_PATH in your ~/.bashrc

Then you have the required permission to write the binaries.

Originally posted by Felix Endres with karma: 6468 on 2011-08-21

This answer was ACCEPTED on the original site

Post score: 2

Original comments

Comment by karthik on 2011-11-10:
Thanks KenHo. That was a useful info.

Comment by KenHo on 2011-10-31:
turns out hogman_minimal wasn't built because it didn't check out properly. Fixed by using https instead of http (svn co https://alufr-ros-pkg.googlecode.com/svn/trunk/freiburg_tools/hogman_minimal). Then building after using sudo bash on the terminal


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.