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

Nao cross_compilation error

asked 2012-01-08 13:56:17 -0500

dougnets22 gravatar image

When trying to cross-compile for the Nao following the instructions (

I get the following library error:

/media/external/nao-cross-toolchain-1.10.52/cross/geode/bin/../libexec/gcc/i586-linux/4.3.3/cc1plus: error while loading shared libraries: cannot open shared object file: No such file or directory

That file is no where to be found in the nao-cross-toolchain folder. I do, however, have in my /usr/lib directory. Any suggestions on how to either download the file or point the compilation to the appropriate location?

edit retag flag offensive close merge delete

4 Answers

Sort by ยป oldest newest most voted

answered 2012-01-11 18:40:51 -0500

Stefan Osswald gravatar image

I guess that you're using Ubuntu 11.10 (Oneiric), which does not provide any more. According to Nao's documentation, Oneiric is not officially supported by Aldebaran yet. You can still give it a try, but probably some dependencies will be missing.

In the case of libmpfr, you could try to download the package libmpfr1ldbl from Ubuntu Natty, extract it using dpkg -x and copy to /media/external/nao-cross-toolchain-1.10.52/cross/geode/bin/../libexec/gcc/i586-linux/4.3.3 .

edit flag offensive delete link more

answered 2012-01-11 23:23:09 -0500

daniel_maier gravatar image

Just do: sudo ln -s /usr/lib/ /usr/lib/

This is a bug in the cross-compilation toolchain that occurs with ubuntu 11.04 and later. Never came across it before, because we are still using 10.04 and 10.10 here. This problem is supposed to be fixed in naoqi 1.12 but unfortunately there are some new issues (like missing log4cxx).

edit flag offensive delete link more


Thanks for the suggestion. That seemed to solve that particular issue. However, since my machine is a 64 bit computer, now I get the issue:wrong ELF class: ELFCLASS64. I think I'm just going to switch to an older laptop.
dougnets22 gravatar image dougnets22  ( 2012-01-12 01:35:01 -0500 )edit
aw, that's another problem. I installed a 32-bit chroot environment for that case. Basically, it should be possible to cross compile with a 64bit system, however I think nobody at Aldebaran tested this. You could try as stefan suggested and download the 32bit version of and copy to /usr/lib/.
daniel_maier gravatar image daniel_maier  ( 2012-01-12 01:41:47 -0500 )edit

answered 2012-01-08 20:09:55 -0500

daniel_maier gravatar image

what are you trying to cross-compile? i.e. what command did you enter?

edit flag offensive delete link more


Thanks for responding daniel_maier. I am cross-compiling ROS for the NAO. So, at this stage I was in the /ros/electric/ros directory and I typed make (after typing make clean).
dougnets22 gravatar image dougnets22  ( 2012-01-09 10:21:06 -0500 )edit

answered 2012-07-17 16:03:55 -0500

ryann2k1 gravatar image

hi dougnets22, Any progress of your crosscompile ros for nao? I am having the same problem, but for the environment setup, I change slightly, from export GEODE_CXX=$CTC_DIR/cross/geode/bin/i586-linux-g++ export GEODE_CC=$CTC_DIR/cross/geode/bin/i586-linux-gcc


export GEODE_CXX=$CTC_DIR/cross/bin/i686-pc-linux-gnu-g++ export GEODE_CC=$CTC_DIR/cross/bin/i686-pc-linux-gnu-gcc

Now, it doesn't need to look for the so library file, but this time different error appears as at my post : any idea as you may come across? Thanks

edit flag offensive delete link more

Question Tools


Asked: 2012-01-08 13:56:17 -0500

Seen: 4,910 times

Last updated: Jul 17 '12