[ros-users] Cross-compilation and library locations

Brian Gerkey gerkey at willowgarage.com
Wed Apr 7 04:32:08 UTC 2010


hi Daniel,

On Thu, Apr 1, 2010 at 6:44 AM, Daniel Maier
<maierd at informatik.uni-freiburg.de> wrote:
> I am trying to cross-compile ros for the Nao robot which uses a geode
> CPU and runs a linux distribution based on openEmbedded ( I think).
>
> I loosely followed the gumros tutorial to built log4cxx and apr and from there used a manufacturer supplied cmake toolchain file for cross-compiling ros.
> It seemd to have worked so far, however after I copied the ros
> directories to the Nao robot, the binaries refuse to work as they cannot
> find the necessary libraries.
> E.g., rospack cannot find librospack.so.
> I assume this is because ros is linked with the rpath option pointing to
> an absolute path. The path to the ros libraries on my desktop used to
> cross-compile is different from the path where the libraries are located on the Nao.
> The easiest workaround would probably be to just make the paths
> identical. However, I was wondering if there was a nicer solution, which
> would allow the ros folders to be moved without the need to rebuilt all
> of ros just to set the library paths.

Cross-compiling is not well-exercised or supported in ROS at the
moment, and you've come across one of the frailties of the current
state of affairs.  A common approach when cross-compiling is to
statically link executables, to avoid even copying the object files to
the embeddd system, much less finding them at run time.  But I'm
pretty sure that the ROS build system won't properly link static
executables at the moment.

What you really want is to be able to *install* your ROS system after
building it.  The install step is on the roadmap for the ROS 1.1.x
series; I'll keep the cross-compilation use-case in mind when
designing it.

In the meantime, your best bet is to make the paths on the build and
host systems identical (you could use chroot on the build system to
make this easier).

	brian.

> Another (but very small issue) concerns the setup.sh script.
> Can you adjust it to to not overwrite the PYTHONPATH variable but append
> to it?
>
> Thanks a lot,
> Dan
> _______________________________________________
> ros-users mailing list
> ros-users at code.ros.org
> https://code.ros.org/mailman/listinfo/ros-users
>



More information about the ros-users mailing list