[ros-users] Installation build failure: incompatible boost library

Nikhil Karnad karnad at cs.umn.edu
Thu May 13 00:36:47 UTC 2010


Hi, my name is Nikhil and I'm trying to install ROS on Ubuntu but I've run
into a linker library incompatibility with libboost. Any help is
appreciated. Here are the specifics:

+ Operating system is Ubuntu 10.04 LTS (Lucid) 64-bit:
              Linux beast 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28
13:28:05 UTC 2010 x86_64 GNU/Linux

+ First installed prerequisites:  build-essential python-yaml cmake
subversion wget

+ Used OS-neutral rosinstall method: ~/myros/rosinstall ~/myros/ros
http://ros.org/rosinstalls/boxturtle_ros.rosinstall

+ The files checkout correctly, but compilation does not work and exits with
an error. The lines at the end are:
  [ 92%] Building CXX object CMakeFiles/roslib.dir/src/package.o
  [100%] Building CXX object CMakeFiles/roslib.dir/src/debug.o
  Linking CXX shared library ../lib/libroslib.so
  /usr/bin/ld: skipping incompatible
/opt/ros/lib/libboost_thread-gcc42-mt-1_37.so when searching for
-lboost_thread-gcc42-mt-1_37
  /usr/bin/ld: skipping incompatible
/opt/ros/lib/libboost_thread-gcc42-mt-1_37.a when searching for
-lboost_thread-gcc42-mt-1_37
  /usr/bin/ld: cannot find -lboost_thread-gcc42-mt-1_37
  collect2: ld returned 1 exit status

The complete log from "buildfailures-with-context.txt" is available at the
following pastebin link:
http://pastebin.com/yi4tzxnm

My guess: the shared object in /opt/ros/lib for libboost is a 32-bit ELF,
whereas I need a 64-bit version. I deduced this by comparing the default
boost shared object with the one in the /opt/ros library:

$ file /opt/ros/lib/libboost_thread-gcc42-mt-1_37.so.1.37.0
/opt/ros/lib/libboost_thread-gcc42-mt-1_37.so.1.37.0: ELF 32-bit LSB shared
object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

$ file /usr/lib/libboost_thread.so.1.40.0
/usr/lib/libboost_thread.so.1.40.0: ELF 64-bit LSB shared object, x86-64,
version 1 (SYSV), dynamically linked, stripped

Could anyone tell me how I can recompile the libraries that go into
/opt/ros/lib? Or more generally, how can I get it to work without using a
different (32-bit) Linux?

Thanks in advance!
Nikhil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osuosl.org/pipermail/ros-users/attachments/20100512/5c4f4e31/attachment-0002.html>


More information about the ros-users mailing list