ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Cross compile ros minimal using Eros on Fedora 14

asked 2011-04-20 13:18:22 -0500

nohemi gravatar image

Hello, I use Fedora 14 and my current version of boost and boost-devel is 1.44 I have been trying to cross compile ROS using the instructions found under the Eros page. I have followed all instructions (including the tool bridge) and I have been successful in all of the steps up until the command
rosprotect --pre-clean --minimal
I have the following output from this command:
[100%] Building CXX object CMakeFiles/example.dir/examples/example.o Linking CXX executable ../examples/example /home/nohemi/ros/ros_comm/utilities/rostime/lib/ undefined reference to boost::thread_resource_error::thread_resource_error()' collect2: ld returned 1 exit status make[3]: *** [../examples/example] Error 1 make[3]: Leaving directory/home/nohemi/ros/ros_comm/tools/rosconsole/build' make[2]: * [CMakeFiles/example.dir/all] Error 2 make[2]: Leaving directory /home/nohemi/ros/ros_comm/tools/rosconsole/build' make[1]: *** [all] Error 2 make[1]: Leaving directory/home/nohemi/ros/ros_comm/tools/rosconsole/build' make: * [all] Error 2

I am not sure how to proceed. Do I need to upgrade to an older version of boost? Or do I need to change some file headers? Or maybe something else entirely?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2011-04-21 15:40:52 -0500

Daniel Stonier gravatar image

updated 2011-04-21 16:46:16 -0500

Undefined references. Typically this happens when it looks for your cross compiled library, but picked up your native library instead. Some things to check:

  • Your CMAKE_FIND_ROOT_PATH. This is where cmake expects to search for libs and headers. If its wrong, it can fall back to native directories. Find your toolchain's library path (the one with in it, if you subtract the lib folder, you have the correct string.
  • Make sure your cross compiled libraries are there, otherwise it may fall back to trying to use your native libraries.

If you're not using a standard eros toolchain module you may have incorrectly specified the TOOLCHAIN_SYSROOT, TOOLCHAIN_INSTALL_PREFIX (and subsequently CMAKE_FIND_ROOT_PATH) settings when attempting to create a custom toolchain module. Refer to the latter page for more hints on how to track down your library/header paths.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2011-04-20 13:18:22 -0500

Seen: 464 times

Last updated: Apr 21 '11