[ros-users] Installation build failure: incompatible boost l…

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
Delete this message
Reply to this message
Author: Nikhil Karnad
Date:  
To: ros-users
Subject: [ros-users] Installation build failure: incompatible boost library
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